Re: [tap] "ok 1 description" vs "ok 1 - description"

Michael G Schwern <schwern@pobox.com> Wed, 04 February 2009 06:13 UTC

Return-Path: <schwern@pobox.com>
X-Original-To: tap@core3.amsl.com
Delivered-To: tap@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 3C6283A67E1 for <tap@core3.amsl.com>; Tue, 3 Feb 2009 22:13:58 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.484
X-Spam-Level:
X-Spam-Status: No, score=-2.484 tagged_above=-999 required=5 tests=[AWL=0.115, BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BpmpkdJKG+DQ for <tap@core3.amsl.com>; Tue, 3 Feb 2009 22:13:57 -0800 (PST)
Received: from sasl.smtp.pobox.com (a-sasl-fastnet.sasl.smtp.pobox.com [207.106.133.19]) by core3.amsl.com (Postfix) with ESMTP id DD80D3A6774 for <tap@ietf.org>; Tue, 3 Feb 2009 22:13:55 -0800 (PST)
Received: from localhost.localdomain (unknown [127.0.0.1]) by a-sasl-fastnet.sasl.smtp.pobox.com (Postfix) with ESMTP id 6C48F96369; Wed, 4 Feb 2009 01:13:34 -0500 (EST)
Received: from [10.23.42.2] (unknown [69.64.236.3]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-sasl-fastnet.sasl.smtp.pobox.com (Postfix) with ESMTPSA id 4C1B096364; Wed, 4 Feb 2009 01:13:31 -0500 (EST)
Message-ID: <49893207.30406@pobox.com>
Date: Tue, 03 Feb 2009 22:13:27 -0800
From: Michael G Schwern <schwern@pobox.com>
User-Agent: Thunderbird 2.0.0.19 (Macintosh/20081209)
MIME-Version: 1.0
To: Steffen Schwigon <ss5@renormalist.net>
References: <497A77D0.8070500@pobox.com> <335014.20536.qm@web65715.mail.ac4.yahoo.com> <20090124115427.GC9114@pjcj.net> <87vds4podb.fsf@renormalist.net> <497B8530.4080903@pobox.com> <873aezxgen.fsf@renormalist.net> <4984E18D.7000606@pobox.com> <87tz7fvv0h.fsf@renormalist.net> <49850F8C.4020904@pobox.com> <87eiyhvr4f.fsf@renormalist.net>
In-Reply-To: <87eiyhvr4f.fsf@renormalist.net>
X-Enigmail-Version: 0.95.7
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
X-Pobox-Relay-ID: F3FE8C68-F282-11DD-8A48-8B21C92D7133-02258300!a-sasl-fastnet.pobox.com
Cc: tap@ietf.org
Subject: Re: [tap] "ok 1 description" vs "ok 1 - description"
X-BeenThere: tap@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Test Anything Protocol WG discussions <tap.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/tap>, <mailto:tap-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tap>
List-Post: <mailto:tap@ietf.org>
List-Help: <mailto:tap-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tap>, <mailto:tap-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 04 Feb 2009 06:13:58 -0000

Steffen Schwigon wrote:
>>>  TH2early (not stripped),
>>>  TH2late  (stripped),
>>>  TH3/TP   (not stripped),
>>>
>>> ?
>> Yep, that's about right.  Nothing before TH2 did anything at all
>> with the description.
> 
> (I'm dreaming about TAP... my thoughts drip out incrementally...)
> 
> I'm getting unsure again because: It could also mean that not
> stripping was ok and the stripping was an experiment that was reverted
> with some reason with TH3. I don't know. Who doeas? $Ovid? @Andy? 
> $You?

An intersection of the three.

The REALLY IMPORTANT thing to realize was that so few people do anything with
descriptions except maybe print them out that very little thought has been put
into their exact parsing.  So don't read too much into what the
implementations did/do.

TH2early didn't strip the description because it was the first TAP parser that
allowed you to do anything with the parsed results so it just wasn't considered.

TH2late did strip the description because it was conforming to what Test::More
did.

TH3 removed the stripping because it wasn't considered part of the fledging
protocol which we were just then starting to write down.

But in all that we never considered the simple possibility that the dash could
be an optional element.


>>> I agree then that stripping the dash from description might not be
>>> so end-of-world as I initially thought.
>>>
>>> I'm maybe one of the very few who currently depend on the exact
>>> descriptions but I can probably even change my evaluation tools.
>> Fortunately, it will be self consistent within one tool.
> 
> Hm, not neccessarily as I provide an API to evaluate the archived TAP
> by descriptions. It would just work as long as I control the
> evaluation environment, which I still do at the moment.

Are you going to be passing interpretations of the descriptions back and forth
between different implementations?  That is, when does the interpretation of
the description matter to anything but a single implementation?


>> What are you doing with them?
> 
> Archiving to track history of testruns and recognize result
> changes. Probably similar to Smolder, I think, maybe more
> finegrained. Therefore I care for single tests and their descriptions.

Looking at it another way, the WORST thing that happens with mixing a legacy
producer which isn't aware of the dash with a post-spec, dash stripping parser
is that the description might get interpreted wrong and you can't associate a
description with it's historical results (though that would indicate that the
test started using a different producer, which stretching this scenario even
further).  Since using the description as a unique test ID is already a
heuristic (something that was discussed in some depth at Oslo) your system
must already be resistant to this problem.

Finally, if the parser always strips the optional dash it should always come
out the same whether the producer uses a leading dash or not EXCEPT for one
contrived case.  When a description deliberately is supposed to have a leading
" -".  I can only think of a fairly contrived example, but if you wanted to
output, say, Morse code "- ... -.-", and your producer doesn't know about the
optional dash, it would say:

ok 1 - ... -.-

Whereas a compliant producer would say:

ok 1 - - ... -.-

A compliant parser would parse the former as "... -.-" and the latter as "-
... -.-".  Same intended meaning, different interpreted descriptions.

Is this edge case important?  It seems one simple way to allay your fears is
to simply go through your historical TAP archives and look for instances where
a description starts with "- ".  If all the descriptions in a stream start
with "- " assume it's Test::Builder output and ignore it.  If only some of
them do, then we've found our exception.

I'm interested to hear what the results are.


-- 
94. Crucifixes do not ward off officers, and I should not test that.
    -- The 213 Things Skippy Is No Longer Allowed To Do In The U.S. Army
           http://skippyslist.com/list/