From 05a891257ffe3711c8244e1e2975549a7a2f2969 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Fri, 30 Dec 2011 11:55:39 +0000 Subject: add TESTNAME to environment variable Also, document SRCDIR in manpage, and add missing call to execute per-test teardown script. --- cmdtest | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'cmdtest') 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' -- cgit v1.2.1