summaryrefslogtreecommitdiff
path: root/cmdtest
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2011-12-30 11:55:39 +0000
committerLars Wirzenius <liw@liw.fi>2011-12-30 11:55:39 +0000
commit05a891257ffe3711c8244e1e2975549a7a2f2969 (patch)
treeb2eab553df038b5f40944ef8555a295f75044d67 /cmdtest
parent410ded65cee929b1871b9cf7bfb9545179f5e0a0 (diff)
downloadcmdtest-05a891257ffe3711c8244e1e2975549a7a2f2969.tar.gz
add TESTNAME to environment variable
Also, document SRCDIR in manpage, and add missing call to execute per-test teardown script.
Diffstat (limited to 'cmdtest')
-rwxr-xr-xcmdtest22
1 files changed, 13 insertions, 9 deletions
diff --git a/cmdtest b/cmdtest
index e40c7b7..e473b3a 100755
--- a/cmdtest
+++ b/cmdtest
@@ -57,17 +57,17 @@ class CommandTester(cliapp.Application):
errors = 0
self.setup_tempdir()
- self.run_script(td.setup_once)
+ self.run_script('', td.setup_once)
for test in td.tests:
self.ts['test'] = test
- self.run_script(td.setup)
+ self.run_script(test.name, td.setup)
for e in self.run_test(test):
logging.error(str(e))
self.ts.clear()
self.output.write('%s\n' % str(e))
errors += 1
- self.run_script(td.teardown)
- self.run_script(td.teardown_once)
+ self.run_script(test.name, td.teardown)
+ self.run_script('', td.teardown_once)
self.cleanup_tempdir()
ok = len(td.tests) - errors
@@ -109,20 +109,21 @@ class CommandTester(cliapp.Application):
logging.info('Removing temporary directory %s' % self.tempdir)
shutil.rmtree(self.tempdir)
- def run_script(self, script_name):
+ def run_script(self, test_name, script_name):
if script_name:
- self.runcmd([script_name], env=self.add_to_env())
+ self.runcmd([script_name], env=self.add_to_env(test_name))
- def add_to_env(self):
+ def add_to_env(self, test_name):
env = dict(os.environ)
env['SRCDIR'] = os.getcwd()
env['DATADIR'] = self.datadir
+ env['TESTNAME'] = test_name
return env
def run_test(self, test):
logging.info('Test case: %s' % test.name)
- self.run_script(test.setup)
+ self.run_script(test.name, test.setup)
if test.script:
argv = [test.script]
@@ -137,14 +138,17 @@ class CommandTester(cliapp.Application):
stdin = open(test.stdin, 'rb')
else:
stdin = None
+ env = self.add_to_env(test.name)
exit, out, err = self.runcmd_unchecked(argv,
- env=self.add_to_env(),
+ env=env,
stdin=stdin,
stdout=stdout,
stderr=stderr)
if stdin is not None:
stdin.close()
+ self.run_script(test.name, test.teardown)
+
errors = []
stdout_diff_name = test.path_prefix + '.stdout-diff'