diff --git a/run_unittests.py b/run_unittests.py index 95e52e3b1..46be65760 100755 --- a/run_unittests.py +++ b/run_unittests.py @@ -451,9 +451,11 @@ class AllPlatformTests(BasePlatformTests): testdir = os.path.join(self.unit_test_dir, '2 testsetups') self.init(testdir) self.build() + # Run tests without setup self.run_tests() with open(os.path.join(self.logdir, 'testlog.txt')) as f: basic_log = f.read() + # Run buggy test with setup that has env that will make it fail self.assertRaises(subprocess.CalledProcessError, self._run, self.mtest_command + ['--setup=valgrind']) with open(os.path.join(self.logdir, 'testlog-valgrind.txt')) as f: @@ -462,6 +464,14 @@ class AllPlatformTests(BasePlatformTests): self.assertFalse('Memcheck' in basic_log) self.assertTrue('TEST_ENV is set' in vg_log) self.assertTrue('Memcheck' in vg_log) + # Run buggy test with setup without env that will pass + self._run(self.mtest_command + ['--setup=wrapper']) + # Setup with no properties works + self._run(self.mtest_command + ['--setup=empty']) + # Setup with only env works + self._run(self.mtest_command + ['--setup=onlyenv']) + # Setup with only a timeout works + self._run(self.mtest_command + ['--setup=timeout']) def assertFailedTestCount(self, failure_count, command): try: diff --git a/test cases/unit/2 testsetups/buggy.c b/test cases/unit/2 testsetups/buggy.c index 5d20a244c..d23883017 100644 --- a/test cases/unit/2 testsetups/buggy.c +++ b/test cases/unit/2 testsetups/buggy.c @@ -5,10 +5,10 @@ int main(int argc, char **argv) { char *ten = malloc(10); - do_nasty(ten); - free(ten); if(getenv("TEST_ENV")) { + do_nasty(ten); printf("TEST_ENV is set.\n"); } + free(ten); return 0; } diff --git a/test cases/unit/2 testsetups/meson.build b/test cases/unit/2 testsetups/meson.build index a65548e02..488cf212b 100644 --- a/test cases/unit/2 testsetups/meson.build +++ b/test cases/unit/2 testsetups/meson.build @@ -14,3 +14,7 @@ add_test_setup('valgrind', buggy = executable('buggy', 'buggy.c', 'impl.c') test('Test buggy', buggy) +add_test_setup('empty') +add_test_setup('onlyenv', env : env) +add_test_setup('wrapper', exe_wrapper : [vg, '--error-exitcode=1']) +add_test_setup('timeout', timeout_multiplier : 20)