← Back to team overview

subunit-dev team mailing list archive

progress activity proposal

 

Here is a proposed diff to README, which defines a progress directive,
that would permit progress bars and has defined behaviour on simple
stream concatenation. 

I don't know yet if this is something that can work well with python
TestSuites etc. I'm thinking that to make that work countTestCases is
needed, or perhaps a similar but weaker method which doesn't require
iterating generators. When a generator is found, it would emit progress:
+1 items (or whatever granularity the generator works at).

Thoughts?

=== modified file 'README'
--- README	2009-07-22 09:39:00 +0000
+++ README	2009-07-23 07:38:40 +0000
@@ -216,10 +216,12 @@
 xfail[:] test label
 xfail[:] test label [
 ]
+progress: [+|-]X
 tags: [-]TAG ...
 time: YYYY-MM-DD HH:MM:SSZ
 unexpected output on stdout -> stdout.
-exit w/0 or last test -> error
+exit w/0 or last test completing -> error
+
 Tags given outside a test are applied to all following tests
 Tags given after a test: line and before the result line for the same
test
 apply only to that test, and inheric the current global tags.
@@ -228,7 +230,19 @@
 In Python, tags are assigned to the .tags attribute on the RemoteTest
objects
 created by the TestProtocolServer.
 
-The time element acts as a clock event - it sets the time for all
future
+The progress directive is used to provide progress information about a
stream
+so that stream consumer can provide completion estimates, progress bars
and so
+on. Stream generators that know how many tests will be present in the
stream
+should output "progress: COUNT". Stream filters that add tests should
output
+"progress: +COUNT", and those that remove tests should output
+"progress: -COUNT". An absolute count should reset the progress
indicators in
+use - it indicates that two separate streams from different generators
have
+been trivially concatenated together, and there is no knowledge of how
many
+more complete streams are incoming. Smart concatenation could scan each
stream
+for their count and sum them, or alternatively translate absolute
counts into
+relative counts inline.
+
+The time directive acts as a clock event - it sets the time for all
future
 events. The value should be a valid ISO8601 time.
 
 The skip result is used to indicate a test that was found by the runner
but not



-- 

Attachment: signature.asc
Description: This is a digitally signed message part


Follow ups