From f03111e5df11a6762438874ccb660a44771073fd Mon Sep 17 00:00:00 2001 From: Robert Collins Date: Mon, 13 Jul 2015 17:55:22 +1200 Subject: Add .travis.yml --- .travis.yml | 31 ++++++++++++++++++++ README.rst | 94 ++++++++++++++++++++++++++++++++++--------------------------- m4/.exists | 0 setup.py | 4 +++ 4 files changed, 87 insertions(+), 42 deletions(-) create mode 100644 .travis.yml create mode 100644 m4/.exists diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..b9dae88 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,31 @@ +sudo: false +addons: + apt: + packages: + - check + - libcppunit-dev +language: python +python: + - "2.6" + - "2.7" + - "3.2" + - "3.3" + - "3.4" + - pypy + - pypy3 +matrix: + include: +# Travis nightly look to be 3.5.0a4, b3 is out and the error we see +# doesn't happen in trunk. +# - python: "nightly" +install: + - pip install -U pip + - pip install -U wheel setuptools + - pip install -U .[test,docs] + - pip list + - python --version + - autoreconf -fi && ./configure && make +script: + - make check + - make distcheck + - rst2html.py README.rst README.html diff --git a/README.rst b/README.rst index 76a7418..bd393ae 100644 --- a/README.rst +++ b/README.rst @@ -198,13 +198,17 @@ This encoding can encode values from 0 to 2**30-1, enough to encode a nanosecond. Numbers that are not variable length encoded are still stored in MSB order. - prefix octets max max -+-------+--------+---------+------------+ -| 00 | 1 | 2**6-1 | 63 | -| 01 | 2 | 2**14-1 | 16383 | -| 10 | 3 | 2**22-1 | 4194303 | -| 11 | 4 | 2**30-1 | 1073741823 | -+-------+--------+---------+------------+ ++--------+--------+---------+------------+ +| prefix | octets | max | max | ++========+========+=========+============+ +| 00 | 1 | 2**6-1 | 63 | ++--------+--------+---------+------------+ +| 01 | 2 | 2**14-1 | 16383 | ++--------+--------+---------+------------+ +| 10 | 3 | 2**22-1 | 4194303 | ++--------+--------+---------+------------+ +| 11 | 4 | 2**30-1 | 1073741823 | ++--------+--------+---------+------------+ All variable length elements of the packet are stored with a length prefix number allowing them to be skipped over for consumers that don't need to @@ -215,8 +219,9 @@ UTF-8 strings are with no terminating NUL and should not have any embedded NULs some remedial action (such as discarding the packet as corrupt). In short the structure of a packet is: -PACKET := SIGNATURE FLAGS PACKET_LENGTH TIMESTAMP? TESTID? TAGS? MIME? - FILECONTENT? ROUTING_CODE? CRC32 + + PACKET := SIGNATURE FLAGS PACKET_LENGTH TIMESTAMP? TESTID? TAGS? MIME? + FILECONTENT? ROUTING_CODE? CRC32 In more detail... @@ -244,11 +249,14 @@ is encountered : and even then it may still be false, failing after passing the version check due to coincidence. Flags are stored in network byte order too. -+-------------------------+------------------------+ + ++------------+------------+------------------------+ | High byte | Low byte | ++------------+------------+------------------------+ | 15 14 13 12 11 10 9 8 | 7 6 5 4 3 2 1 0 | -| VERSION |feature bits| | +------------+------------+------------------------+ +| VERSION | feature bits | ++------------+-------------------------------------+ Valid version values are: 0x2 - version 2 @@ -349,6 +357,7 @@ Sample subunit wire contents ---------------------------- The following:: + test: test foo works success: test foo works. test: tar a file. @@ -360,6 +369,7 @@ The following:: a writeln to stdout When run through subunit2pyunit:: + .F a writeln to stdout @@ -371,43 +381,43 @@ When run through subunit2pyunit:: foo.c:34 WARNING foo is not defined. -Subunit protocol description -============================ +Subunit v1 protocol description +=============================== This description is being ported to an EBNF style. Currently its only partly in that style, but should be fairly clear all the same. When in doubt, refer the source (and ideally help fix up the description!). Generally the protocol is line orientated and consists of either directives and their parameters, or when outside a DETAILS region unexpected lines which are not interpreted by -the parser - they should be forwarded unaltered. - -test|testing|test:|testing: test LABEL -success|success:|successful|successful: test LABEL -success|success:|successful|successful: test LABEL DETAILS -failure: test LABEL -failure: test LABEL DETAILS -error: test LABEL -error: test LABEL DETAILS -skip[:] test LABEL -skip[:] test LABEL DETAILS -xfail[:] test LABEL -xfail[:] test LABEL DETAILS -uxsuccess[:] test LABEL -uxsuccess[:] test LABEL DETAILS -progress: [+|-]X -progress: push -progress: pop -tags: [-]TAG ... -time: YYYY-MM-DD HH:MM:SSZ - -LABEL: UTF8* -NAME: UTF8* -DETAILS ::= BRACKETED | MULTIPART -BRACKETED ::= '[' CR UTF8-lines ']' CR -MULTIPART ::= '[ multipart' CR PART* ']' CR -PART ::= PART_TYPE CR NAME CR PART_BYTES CR -PART_TYPE ::= Content-Type: type/sub-type(;parameter=value,parameter=value) -PART_BYTES ::= (DIGITS CR LF BYTE{DIGITS})* '0' CR LF +the parser - they should be forwarded unaltered:: + + test|testing|test:|testing: test LABEL + success|success:|successful|successful: test LABEL + success|success:|successful|successful: test LABEL DETAILS + failure: test LABEL + failure: test LABEL DETAILS + error: test LABEL + error: test LABEL DETAILS + skip[:] test LABEL + skip[:] test LABEL DETAILS + xfail[:] test LABEL + xfail[:] test LABEL DETAILS + uxsuccess[:] test LABEL + uxsuccess[:] test LABEL DETAILS + progress: [+|-]X + progress: push + progress: pop + tags: [-]TAG ... + time: YYYY-MM-DD HH:MM:SSZ + + LABEL: UTF8* + NAME: UTF8* + DETAILS ::= BRACKETED | MULTIPART + BRACKETED ::= '[' CR UTF8-lines ']' CR + MULTIPART ::= '[ multipart' CR PART* ']' CR + PART ::= PART_TYPE CR NAME CR PART_BYTES CR + PART_TYPE ::= Content-Type: type/sub-type(;parameter=value,parameter=value) + PART_BYTES ::= (DIGITS CR LF BYTE{DIGITS})* '0' CR LF unexpected output on stdout -> stdout. exit w/0 or last test completing -> error diff --git a/m4/.exists b/m4/.exists new file mode 100644 index 0000000..e69de29 diff --git a/setup.py b/setup.py index c6a3808..803cbb9 100755 --- a/setup.py +++ b/setup.py @@ -16,6 +16,10 @@ else: 'tests_require': [ 'testscenarios', ], + 'extras_require': { + 'docs': ['docutils'], + 'test': ['testscenarios'], + }, } -- cgit v1.2.1