unit tests: Test some corner-cases in test setups

https://github.com/mesonbuild/meson/pull/1402
pull/1402/head
Nirbheek Chauhan 8 years ago
parent 06d615611b
commit f90f17b250
  1. 10
      run_unittests.py
  2. 4
      test cases/unit/2 testsetups/buggy.c
  3. 4
      test cases/unit/2 testsetups/meson.build

@ -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:

@ -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;
}

@ -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)

Loading…
Cancel
Save