tdc - Adding test cases for tdc

Author: Lucas Bates - lucasb@mojatatu.com

ADDING TEST CASES
-----------------

User-defined tests should be added by defining a separate JSON file.  This
will help prevent conflicts when updating the repository. Refer to
template.json for the required JSON format for test cases.

Include the 'id' field, but do not assign a value. Running tdc with the -i
option will generate a unique ID for that test case.

tdc will recursively search the 'tc-tests' subdirectory (or the
directories named with the -D option) for .json files.  Any test case
files you create in these directories will automatically be included.
If you wish to store your custom test cases elsewhere, be sure to run
tdc with the -f argument and the path to your file, or the -D argument
and the path to your directory(ies).

Be aware of required escape characters in the JSON data - particularly
when defining the match pattern. Refer to the supplied json test files
for examples when in doubt.  The match pattern is written in json, and
will be used by python.  So the match pattern will be a python regular
expression, but should be written using json syntax.


TEST CASE STRUCTURE
-------------------

Each test case has required data:

id:           A unique alphanumeric value to identify a particular test case
name:         Descriptive name that explains the command under test
category:     A list of single-word descriptions covering what the command
              under test is testing. Example: filter, actions, u32, gact, etc.
setup:        The list of commands required to ensure the command under test
              succeeds. For example: if testing a filter, the command to create
              the qdisc would appear here.
	      This list can be empty.
	      Each command can be a string to be executed, or a list consisting
	      of a string which is a command to be executed, followed by 1 or
	      more acceptable exit codes for this command.
	      If only a string is given for the command, then an exit code of 0
	      will be expected.
cmdUnderTest: The tc command being tested itself.
expExitCode:  The code returned by the command under test upon its termination.
              tdc will compare this value against the actual returned value.
verifyCmd:    The tc command to be run to verify successful execution.
              For example: if the command under test creates a gact action,
              verifyCmd should be "$TC actions show action gact"
matchPattern: A regular expression to be applied against the output of the
              verifyCmd to prove the command under test succeeded. This pattern
              should be as specific as possible so that a false positive is not
              matched.
matchCount:   How many times the regex in matchPattern should match. A value
              of 0 is acceptable.
teardown:     The list of commands to clean up after the test is completed.
              The environment should be returned to the same state as when
              this test was started: qdiscs deleted, actions flushed, etc.
	      This list can be empty.
	      Each command can be a string to be executed, or a list consisting
	      of a string which is a command to be executed, followed by 1 or
	      more acceptable exit codes for this command.
	      If only a string is given for the command, then an exit code of 0
	      will be expected.


SETUP/TEARDOWN ERRORS
---------------------

If an error is detected during the setup/teardown process, execution of the
tests will immediately stop with an error message and the namespace in which
the tests are run will be destroyed. This is to prevent inaccurate results
in the test cases.  tdc will output a series of TAP results for the skipped
tests.

Repeated failures of the setup/teardown may indicate a problem with the test
case, or possibly even a bug in one of the commands that are not being tested.

It's possible to include acceptable exit codes with the setup/teardown command
so that it doesn't halt the script for an error that doesn't matter. Turn the
individual command into a list, with the command being first, followed by all
acceptable exit codes for the command.

Example:

A pair of setup commands.  The first can have exit code 0, 1 or 255, the
second must have exit code 0.

        "setup": [
            [
                "$TC actions flush action gact",
                0,
                1,
                255
            ],
            "$TC actions add action reclassify index 65536"
        ],
