Our new smoke server now has some extra links with the name of SYN in the right
margin of the page, where one SYN link corresponds to one smoke report:
http://m19s28.vlinux.de/cgi-bin/pugs-smokeserv.pl
Click on one of these links and you will be redirected to
a list of Synopses.
Enter one synopsis, say, ``02 Syntax'', and you will find out the magic.
As you can see, these synopses contain test passing/failing marks in the code
snippets. (This feature was originally suggested by Christopher++ and Gaal++.) For example:
√ |
is($foo, "blah", "lone block actually executes it's content"); |
|
|
| my $foo2; |
| {$foo2 = "blah"}; |
√ |
is($foo2, "blah", "lone block w/out a semicolon actually executes it's content"); |
|
|
| my $foo3; |
| ({$foo3 = "blah"}); |
× |
ok(!defined($foo3), "block enclosed by parentheses should not auto-execute (1)", :todo<bug>); |
Note that TODO tests are marked as passing only if they're actually passing
(i.e., unexpected passing from the perspective of implementers) and they're marked
as failing only if they're actually failing (i.e. expected failing). I don't
introduce special marks for these tests because added complexity will lead to unnecessary
confusion.
Skipped tests have no marks at all and the intention is straightforward. Just don't mistake
blank tests for smartlinks.pl's bugs or something like that. ;)
There's also brief stats info in the link name so that you can see how many sub-tests are failing
and how many are not without actually expanding the code snippet. (Thanks Juerd++ for
suggesting this one.)
For instance:
- Show the snippet from t/var/var.t (line 13 ~ line 132 — 30 √, 0 ×
) -On top of the web page, there's a header like this:
This page was generated at 2006-09-17 05:58:59 GMT.
(syn r12136, pugs r13398)
where the revision number for pugs is extracted from the corresponding smoker's
report. Christopher has ensured the version of the Pugs test suite used by the smoke server
matches exactly the smoker's local Pugs. The timestamp was
proposed by Juerd while
the revision numbers for both syn and pugs were
proposed by [particle]++.
All the Synopses on the smoke server are updated periodically by cron, even including
old smoke reports that had been processed. We're trying to offer you the latest Perl 6 Spec
everywhere. :)
For more details on the original motivation and Christopher's design decisions,
please read the p6c threads below:
Integrating the Pugs test suite into the Synopses
synopses on smoke server
Thanks Gaal and Larry's tests.yml
while I was implementing smoke result rendering feature in
smartlinks.pl many weeks ago. At last but not least, I really appreciate Christopher's
work on the smoke server/client mechanism to make this feature truly useful.
(We don't need auto-smoking
on feather any more, whee!) And I also thank iblech++ (yes, iblech's alive!) for helping
Christopher through the whole process.
The Synopses on feather will still go without smoke results,
since smoke results are always specific to a certain Perl 6 implementation or a Pugs backend.
We hope you will still like it. :)
Audrey once said on #perl6 that she was biased to fix tests with smartlinks. And [particle] recently said that he had started a port of smartlinks.pl to PIR so as to cross-reference PGE's tests with the Synopses and parrot PDDs. Furthermore, I've seen more and more people are adding both tests and smartlinks to the Pugs test suite, which is really really wonderful. :D
Recent Comments