Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

petdance (2468)

AOL IM: petdance (Add Buddy, Send Message)
Yahoo! ID: petdance (Add User, Send Message)

I'm Andy Lester, and I like to test stuff. I also write for the Perl Journal, and do tech edits on books. Sometimes I write code, too.

Journal of petdance (2468)

Monday November 29, 2004
04:46 PM

Naming TAP, the Test::Harness protocol

[ #22057 ]
I've wanted to name the Test::More protocol for as long as I can remembering being into testing, so that we can write a spec and let others write to it. So far I have a shell library and a PHP library that create output in that format.

Now it has a name: "TAP", for Test Anything Protocol. How did I come up with that name? Another cross-country brainstorm meeting on 11/4/2004, as seen below:

AIM Chat with Jeff Bisbee, Shawn Boyette, Richard Dice, Jason Gessner, Joe McMahon, Chris Shiflett, Ricardo Julian Besteiro Signes, David Wheeler.
Jeff Bisbee: hey guys
Joe McMahon: hi ho
Chris Shiflett: Hello.
Andy Lester: Hey Joe
Jeff Bisbee: not going to have a lot of time just this minute
Andy Lester: That's OK.
Andy Lester: You can bail.
Jeff Bisbee: but I'll watch the conversation
Richard Dice: Hello.
Andy Lester: Wish Piers was here. He's the king of AIM naming.
Richard Dice: Sorry... what was the topic of this chat again? It flashed on my screen too quickly.
Andy Lester: The protocol that Perl uses for testing needs a name
Andy Lester: ok 1
Andy Lester: ok 2
Andy Lester: ok 3
Andy Lester: etc
Andy Lester: Shiflett's doing some stuff with Geoff Young doing PHP testing from Perl.
Richard Dice: Call it "a-okay!" (or given my own proclivities, "eh-okay")
Andy Lester: And we need to have a NAME for the protocol so we can say "You have to be able to write to this protocol."
Jason Gessner: pOKe
Andy Lester: Good.
Casey West has joined this chat.
Jason Gessner: perl's OK for everybody
Andy Lester: Keep dumping ideas.
Joe McMahon: K
Andy Lester: I suggested POK
Richard Dice: Sorry.... I need a bit more description. What it seems like you're describing is the functioning of the test harness. Protocols... aren't those network things?
Pete Krawczyk has joined this chat.
Pete Krawczyk: Afternoon.
Richard Dice: Or, when applied to the programming interface to them, APIs?
Casey West: protocols are interfaces
Andy Lester: Nope. Test::More just generates "ok 1\nok 2\n" etc
Chris Shiflett: green light protocol
Andy Lester: and Test::Harness parses it.
Andy Lester: That format needs a name.
Chris Shiflett: nod
Casey West: The Perl Test Harness has an interface with the output of testing scripts. Andy wants to name that interface.
Chris Shiflett: pokay
Casey West: And, well, he just said that.
Jeff Bisbee: mmm'k
Jason Gessner: hehe
Jason Gessner: i like mmmm k
Pete Krawczyk: Doesn't Test::More also generate 1..n and #diag too?>
Jeff Bisbee: south park
Andy Lester: Pete: Yes.
Andy Lester: I was simplifying.
Chris Shiflett: mmmk protocol, yeah
chromatic has joined this chat.
Chris Shiflett: nod format
Casey West: PTH - Perl Test Harness. Not very creative, but descriptive.
Joe McMahon: count-ok
Andy Lester: chromatic: We're naming the Perl test9ing protocol, so that PHP can call it something.
Andy Lester: But Test::Harness is the harness.
Jason Crome has joined this chat.
Casey West: Well, "PTH Format"
Andy Lester: The goal here is that ANYTHING can write that format.
chromatic: PHP, eh?
Pete Krawczyk: I like "STP" - simplified testing protocol
Andy Lester: Shell, PHP, C++, whatever.
2:15 PM
Jason Gessner: PCP
Jason Crome: good afternoon everyone
Andy Lester: I already have code to do the first two.
Casey West: It rolls off the tongue, if your tongue is limp or stuck to a flag poll.
Jason Gessner: perl confirmation protocol
chromatic: test_format_HarNessPer_l
Andy Lester: and then I'm going to distrbute them in T::H
Richard Dice: TOF -- testing output format
Shawn Boyette: THHPT (The HTTP Harness for Perl Testing) (apologies to Breathed)
Pete Krawczyk: I don't think "perl" should be part of it, because while its home is Perl, it is portable to other areas too.
chromatic: As far as I can tell that follows PHP best practice naming conventions. It has everything: camel case, odd word order, and underscores in the wrong places.
Chris Shiflett: scoop
Chris Shiflett: the scoop
Andy Lester: I agree with Pete:
Casey West: TRF - test reporting format; TRP - test reporting protocol
Joe McMahon: right - even Java could use it
Andy Lester: EVEN JAVA!
Andy Lester: It's part of my Evil Plan to have anyone able to write it, so that they can I<prove> anything.
chromatic: Portable Test Report Protocol
Richard Dice: Yeah... it's about time we inflict some of our shite on the Java people for a change.
Joe McMahon: TAP - test anything protocol
Chris Nandor has joined this chat.
Casey West: PTP - Practical Testing Protocol
Andy Lester: TAP is a good idea.
Jeff Bisbee: tap is good
Kevin Meltzer has joined this chat.
Jeff Bisbee: Happy Gilmore... just _tap_ it in
Casey West: TAP works
Joe McMahon: tests on TAP
Andy Lester: And so I say to you, Tap into America!
Jason Crome: TAP is good
Chris Nandor: i like tap. lots of good Spinal Tap references possible.
Andy Lester: Keep going.
Chris Nandor: like i said
Richard Dice: Only if I get to write Spinal::TAP
Joe McMahon: turn on the TAP
Jeff Bisbee: TAP::That::Ass
Casey West: The output engine could be TAP::Microphone
chromatic: TAP WFM
Andy Lester: OTOH, it's hard to google on TAP
Kevin Meltzer: Guinness::On::TAP
Richard Dice: (The double colons in the middle are actually umlauts.)
Nat Torkington has joined this chat.
Nat Torkington: what?
Chris Nandor: who?
Kevin Meltzer: I'm in this late, I like "TAP", but what's it stand for?
Andy Lester: We're naming the Perl testing protocol.
Richard Dice: Test Anything Protocol.
Andy Lester: Test Anything Protocol
Shawn Boyette: Testicles And Penis
Kevin Meltzer: Test It Today
Pete Krawczyk: Generic Universal Testing Syntax- GUTS
Richard Dice: Sounds like a Steve Jackson game.
Andy Lester: Does "TAP" mean anything else?
Nat Torkington: what's the heart of the testing protocol? daily tests? feature tests? consistency? coverage? .... ?
Kevin Meltzer: Test All Perl
Andy Lester: Gessner: Weren't we going to write HTTP::Tap at one point?
Chris Shiflett: rip - red ink protocol, like red ink used for grading papers
chromatic: Nat, just the ok/not ok stuff.
Casey West: This is naming simply the output format from tests that conforms to Perl's test harness requirements.
Joe McMahon: couple of brand names - TAP Air Portugal
Andy Lester: Nat: We just need to name the "ok 1\nok 2\n" thing, so that PHP et al can write to it.
Nat Torkington: PERT = Perl's Regression Tests
Andy Lester: That's a mis-Google waiting to happen.
Andy Lester: But it could be anything, too
Pete Krawczyk: Nat: I personally would like to keep Perl out of it to encourage other langs to pick it up
Pete Krawczyk: The name, that is
Casey West: Test Reporting Language - TRL. MTv can bite me.
Andy Lester: Yes, it's not a Perl thing.
Nat Torkington: I just tried to Google a bunch of project names, and it's almost impossible when they're real english words. Name it something like STF2004 (Simple Test Format) so that it can easily be googled for.
Kevin Meltzer: All Your Tests Belong To Us
Andy Lester: And really, Test Anything Protocol is pretty wide open.
Kevin Meltzer: *ducks*
Joe McMahon: STP - simple testing protocol (collision)
Pete Krawczyk: Test Reporting Syntax - TRS! Then we can have "TRS Reports"
Pete Krawczyk: wait, d'oh
Pete Krawczyk: wrong acronym
Chris Shiflett: rifts - red ink format for testing stuff
Pete Krawczyk: Test Protocol Syntax
Nat Torkington: CTOF, common test output format?
Andy Lester: "I see you forgot your code coverage page on your TPS report."
Joe McMahon: CTP - common test protocol
Nat Torkington: TTS, The Test Syntax. pron: "titties"
Andy Lester: I want it pronouncable
Andy Lester: like prove.
Kevin Meltzer: Are we thinking of a name, or an acronym to build a name from?
Andy Lester: I would prefer a name.
Chris Shiflett: fiddle
Kevin Meltzer: Generic Testing Protocol
Jesse Sheidlower has joined this chat.
Pete Krawczyk: I would imagine we could probably backronym most any name
chromatic: mm, testzilla
Andy Lester: Hey Jesse
Andy Lester: Let's ask the OED guy!
Casey West: "agent 42", just like you see in random packs of underwear that's been tested by agent $N.
Andy Lester: Why fiddle?
Kevin Meltzer: Open Test Protocol
Joe McMahon: inspector 9
Andy Lester: But it's not open.
Nat Torkington: heh, call it the Universal Testing Format, Version 1. UTF-1. confuse the shit out of everyone.
Andy Lester: It's whatever I say! hah!
Andy Lester: TXML!
Andy Lester: TESTING XML!
Chris Shiflett: fiddle - no good reason, other than it tells you whether you need to keep fiddling
Kevin Meltzer: Is it really a protocol?
Joe McMahon: bad andy no biscuit
Chris Shiflett: and because fiddle is fun to say
Jeff Bisbee: dalek?
chromatic: Test Control Language!
Andy Lester: I think it's a protocol.
Chris Nandor: chromatic++
Andy Lester: It's a one-way protocol.
Jim Brandt has joined this chat.
Andy Lester: Tests, 'kay?
Jim Brandt: Huh?
Andy Lester: Hi Jim. W're naming the Perl testing protocol.
chromatic: It's not as if anyone but Ziggy and AOL are using Tcl right now anyway.
Chris Nandor: true enough.
Casey West: well, we have prove.
Jesse Sheidlower: What do we have so far?
Casey West: prove needs... proof
Andy Lester: ooooh
Joe McMahon: axioms
Andy Lester: keep going, Casey.
Andy Lester: evidence?
Nat Torkington: call it Simple Test Output Protocol, and postfix the language name. STOP-Perl, STOP-PHP. I think we can all get behind that.
Kevin Meltzer: NOOK
Casey West: proof, really, that's the best I can do.
Joe McMahon: lemmas
Chris Shiflett: diebold
Casey West: paper trail
Chris Shiflett:
Andy Lester: Chad!
Joe McMahon: steps in a proof are ...
Shawn Boyette: lemma sounds nice
Chris Shiflett: chad would be cool and funny
Jesse Sheidlower: Lemming?
chromatic: Simple Text Output Meta Protocol Of Unmonitored Tests
Kevin Meltzer: SMOKE
Jeff Bisbee: smoke is good
Andy Lester: Smoke already has meaning.
Casey West: smoking gun
Andy Lester: Otherwise prove would have been smoke.
Casey West: testimony
Chris Shiflett: scout
Joe McMahon: FACT?
Kevin Meltzer: Right, smoke has meaning for testing
Casey West: I'm just fishing for synonyms now...
Chris Nandor: Actuarial Catalog of Tests Under Proof
Andy Lester: I want to be able to say "OK, here's a TAP report"
Andy Lester: PLUS, anyone should be able to parse a TAP report.
chromatic: TAPITTO
Kevin Meltzer: Did you TAP that ass?
Andy Lester: KM: Been discussed.
Shawn Boyette: DALEK
Andy Lester: Been discussed.
Chris Shiflett: inkle
Jeff Bisbee: confirm
Nat Torkington: definitely TPS
David Hand has joined this chat.
Jeff Bisbee: quiz
Nat Torkington: "do you have that TPS report for me, yet?"
Andy Lester: cogent: We're naming the Perl testing protocol.
Chris Nandor: i like TAP.
Pete Krawczyk: Simple Test Reporting Engine Protocol - I've got STREP!
Chris Shiflett: tip - like a tip-off, or the testing independent protocol
Andy Lester: TAP is the best so far.
David Hand: Polemos
Jeff Bisbee: try
Andy Lester: TIP is good.
Chris Nandor: i see so many nicks in here i recnognize, it feels like home
David Hand: At least, if a phalanx is what does it.
Chris Nandor: /me takes a nap in a warm blanket
Chris Shiflett: clue
Andy Lester: Pudge: And prob'ly some you don't.
Chris Nandor: yes.
Andy Lester: I only see real names. I don't ven know your nicks.
Jeff Bisbee: probe
Richard Dice: This is just a big nick-o-rama to me.
Richard Dice: I can figure out about 5 people.
Andy Lester: Jeff: That's brilliant! One key width of a difference from prove!
Nat Torkington: take a lesson from the US Gubmint. Project Testing Liberty and Enduring Smoke
Chris Shiflett:
Joe McMahon: Project Obviously Wrong
Jeff Bisbee: scrutiny
David Hand: Polemos. And the head of it is the Polemarch.
David Hand:
Andy Lester: But it's just a format.
David Hand: /me goes back to his Greek
Chris Shiflett: litmus
Nat Torkington: Standard Practices Emitting Result Metrics.
Joe McMahon: indication
Nat Torkington: Core Universal Methodology Serving Harnessed Output Tests
Chris Shiflett: holmes
Casey West: I still like proof, but I'm single minded. If we have to expand it, "Proof Modeling Language: PML"
chromatic: Portable Automated Natural Testing System
Andy Lester: PANTS check!
Andy Lester: Descriptively Obvious Natural Goodness
Andy Lester: OK, I think I'm goin' with TAP, all caps.
Kevin Meltzer: Test Anything Protocol?
Andy Lester: It's wide-open. It can be anything.
Andy Lester: KM: Yes.
Kevin Meltzer: Will test Python?
Andy Lester: Anything can write to it.
Nat Torkington: Standard Practices And Normative Kabbala for Metricing Endpoints
Andy Lester: it's just ok 1, ok 2, ok 3
Nat Torkington: bah, TAP is so ... wholesome.
Andy Lester: Shiflett's already got PHP that writes TAP format.
Chris Shiflett: ballot
Chris Shiflett: bubble
Andy Lester: Nat: We can make a dirty one just for you.
Pete Krawczyk: Didn't someone already suggest TAP can be "testicles and penis"??
Pete Krawczyk: Isn't that dirty enough?
Kevin Meltzer: yes
Jim Brandt: bona fide
Joe McMahon: Protocol Originating from Internal Testing - POIT
Kevin Meltzer: I'd say Tits and Pussy, but that's me
Chris Shiflett: no2 - like number 2 pencils used to take tests
Andy Lester: "I left you a no2 file."
Kevin Meltzer: I don't think in male genitalia
Andy Lester: "Yeah, I know."
Jim Brandt: kosher
Nat Torkington: Practical Output Of Pass/fails
Chris Shiflett: no2 format
Shawn Boyette: ooh, the gentoo users will love something called no2
Chris Shiflett: yeah, no2 file
Andy Lester: You are the new no6.
David Hand: I gotta go back to composing a counterpoint for Music tutorial.
David Hand:
Chris Shiflett: no5 is as high as you want to go
Andy Lester: Thanks, David.
David Hand has left this chat.
Andy Lester: OK, anything else? Chris, can you go forward w/TAP?
Nat Torkington: A Regular System Emitting Bulleted Ancillary Normative Declarations of Idempotent Tests.
Chris Shiflett: I'm fine with anything.
Andy Lester: I'm going to extract out the docs for TAP and make Test::Harness::TAP
Casey West: test all programs
Casey West: treat ada poorly
Casey West: tip all programmers
Casey West: okay, back to work. later folks!
Nat Torkington: Tang and Poon
Nat Torkington: later.
Shawn Boyette: Take A Pounding
Nat Torkington has left this chat.
Casey West has left this chat.
Andy Lester: Thanks everyone! Kisses all 'round!

I love the Net sometimes....

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • So far I have a shell library and a PHP library that create output in that format.

    inless you're talking about command line php stuff, you should really take a look at the work Chris [] and I have done, rather than continue to maintain your own library. you can see the slides here [] and the sample application (with php tests) here []. the autogenerated test-more.php can be seen at the end of this library [].

    no perl testing book would be complete without it :)
  • I can't believe you didn't go with TPS!
    • I dismissed it out of hand.

      I think "Office Space" is a funny movie, just like I think Dilbert is a funny comic strip. However, I don't want anyone to think that I go along with the premise that "work sucks, everything related to work sucks, bitch bitch bitch."



  • Actually, TAP is a common protocol used for pager communications over modems. More details here [].

    But realistically, if you're dead set on using TAP, I don't think there will be much confusion between the two.

  • Actually, I don't recall being a part of that chat. You didn't invite me! But thanks for the credit, all the same.

    • I must have invited you, or I wouldn't have it. You must not have joined, or not been available, or something. There were 3-4 other people that were the same way, and I removed their names.

      Enjoy your undeserved fame!



  • Do you know of any C library implementations (presumably equivalent to Test::More in functionality).

    A few weeks back I finished converting most of FreeBSD's test regression suite (/usr/src/tools/regression for those of you on a FreeBSD system; if you're not) and one of the ToDo items there is replace most of the ASSERT() calls in the .c tests with calls to an ok() from a hypothetical
  • I can use this with my own log to figure out which nicks belonged to whom!
  • Geeks like me already know TAP as the Telocator Alphanumeric Protocol. This allows our computer monitoring system to send text messages directly to our cell phones over a modem.

    That's important if you are trying to get paged that your network connection is down. :)

    However, I imagine it's unlikely that both protocols would come up in the same context.