diff options
| author | Marius Kintel <marius@kintel.net> | 2010-09-07 00:04:38 (GMT) | 
|---|---|---|
| committer | Marius Kintel <marius@kintel.net> | 2010-10-31 00:42:39 (GMT) | 
| commit | a248852f6cb0ade2dee5fc4cc3a8bc1de88a2528 (patch) | |
| tree | 8f207c27abfccd7a1d46a08b6c2ea389ead86eec /tests | |
| parent | 049b16608a9b1067fcefd9b8a2f189d32ced74d5 (diff) | |
Make it possible to run the tests without and -expected file
Diffstat (limited to 'tests')
| -rwxr-xr-x | tests/test_cmdline_tool.py | 35 | 
1 files changed, 22 insertions, 13 deletions
| diff --git a/tests/test_cmdline_tool.py b/tests/test_cmdline_tool.py index c1b0eb2..8fe4890 100755 --- a/tests/test_cmdline_tool.py +++ b/tests/test_cmdline_tool.py @@ -29,9 +29,14 @@ def initialize_environment():      if not options.generate: options.generate = bool(os.getenv("TEST_GENERATE"))      return True +def init_expected_filename(testname, cmd): +    global expecteddir, expectedfilename +    expecteddir = os.path.join(options.regressiondir, os.path.split(cmd)[1]) +    expectedfilename = os.path.join(expecteddir, testname + "-expected" + options.suffix) +  def verify_test(testname, cmd): +    global expectedfilename      if not options.generate: -        expectedfilename = os.path.join(options.regressiondir, os.path.split(cmd)[1], testname + "-expected" + options.suffix)          if not os.path.isfile(expectedfilename):              print >> sys.stderr, "Error: test '%s' is missing expected output in %s" % (testname, expectedfilename)              return False @@ -49,13 +54,18 @@ def get_normalized_text(filename):  def compare_text(expected, actual):      return get_normalized_text(expected) == get_normalized_text(actual) +def compare_with_expected(resultfilename): +    if not options.generate: +        if not compare_text(expectedfilename, resultfilename):  +            execute_and_redirect("diff", [expectedfilename, resultfilename], sys.stderr) +            return False +    return True +  def run_test(testname, cmd, args):      cmdname = os.path.split(options.cmd)[1]      outputdir = os.path.join(os.getcwd(), cmdname + "-output")      actualfilename = os.path.join(outputdir, testname + "-actual" + options.suffix) -    expecteddir = os.path.join(options.regressiondir, cmdname) -    expectedfilename = os.path.join(expecteddir, testname + "-expected" + options.suffix)      if options.generate:           if not os.path.exists(expecteddir): os.makedirs(expecteddir) @@ -72,17 +82,12 @@ def run_test(testname, cmd, args):          outfile.close()          if proc.returncode != 0:              print >> sys.stderr, "Error: %s failed with return code %d" % (cmdname, proc.returncode) -            return False +            return None -        if not options.generate: -            if not compare_text(expectedfilename, actualfilename):  -                execute_and_redirect("diff", [expectedfilename, actualfilename], sys.stderr) -                return False +        return outputname      except OSError, err:          print >> sys.stderr, "Error: %s \"%s\"" % (err.strerror, cmd) -        return False - -    return True +        return None  class Options:      def __init__(self): @@ -139,7 +144,11 @@ if __name__ == '__main__':      # Initialize and verify run-time environment      if not initialize_environment(): sys.exit(1) +    init_expected_filename(options.testname, options.cmd) +      # Verify test environment -    if not verify_test(options.testname, options.cmd): sys.exit(1) +    verification = verify_test(options.testname, options.cmd) + +    resultfile = run_test(options.testname, options.cmd, args[1:]) -    if not run_test(options.testname, options.cmd, args[1:]): sys.exit(1) +    if not verification or not compare_with_expected(resultfile): exit(1) | 
