aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xrun_unittests.py55
-rw-r--r--test cases/unit/4 suite selection/failing_test.c1
-rw-r--r--test cases/unit/4 suite selection/meson.build13
-rw-r--r--test cases/unit/4 suite selection/subprojects/subprjfail/failing_test.c1
-rw-r--r--test cases/unit/4 suite selection/subprojects/subprjfail/meson.build5
-rw-r--r--test cases/unit/4 suite selection/subprojects/subprjmix/failing_test.c1
-rw-r--r--test cases/unit/4 suite selection/subprojects/subprjmix/meson.build9
-rw-r--r--test cases/unit/4 suite selection/subprojects/subprjmix/successful_test.c1
-rw-r--r--test cases/unit/4 suite selection/subprojects/subprjsucc/meson.build5
-rw-r--r--test cases/unit/4 suite selection/subprojects/subprjsucc/successful_test.c1
-rw-r--r--test cases/unit/4 suite selection/successful_test.c1
11 files changed, 93 insertions, 0 deletions
diff --git a/run_unittests.py b/run_unittests.py
index d1c192f..adc0e7f 100755
--- a/run_unittests.py
+++ b/run_unittests.py
@@ -418,6 +418,61 @@ class LinuxlikeTests(unittest.TestCase):
self.assertTrue('TEST_ENV is set' in vg_log)
self.assertTrue('Memcheck' in vg_log)
+ def assertFailedTestCount(self, failure_count, command):
+ try:
+ self._run(command)
+ self.assertEqual(0, failure_count, 'Expected %d tests to fail.' % failure_count)
+ except subprocess.CalledProcessError as e:
+ self.assertEqual(e.returncode, failure_count)
+
+ def test_suite_selection(self):
+ testdir = os.path.join(self.unit_test_dir, '4 suite selection')
+ self.init(testdir)
+ self.build()
+
+ self.assertFailedTestCount(3, self.mtest_command)
+
+ self.assertFailedTestCount(0, self.mtest_command + ['--suite', ':success'])
+ self.assertFailedTestCount(3, self.mtest_command + ['--suite', ':fail'])
+ self.assertFailedTestCount(3, self.mtest_command + ['--no-suite', ':success'])
+ self.assertFailedTestCount(0, self.mtest_command + ['--no-suite', ':fail'])
+
+ self.assertFailedTestCount(1, self.mtest_command + ['--suite', 'mainprj'])
+ self.assertFailedTestCount(0, self.mtest_command + ['--suite', 'subprjsucc'])
+ self.assertFailedTestCount(1, self.mtest_command + ['--suite', 'subprjfail'])
+ self.assertFailedTestCount(1, self.mtest_command + ['--suite', 'subprjmix'])
+ self.assertFailedTestCount(2, self.mtest_command + ['--no-suite', 'mainprj'])
+ self.assertFailedTestCount(3, self.mtest_command + ['--no-suite', 'subprjsucc'])
+ self.assertFailedTestCount(2, self.mtest_command + ['--no-suite', 'subprjfail'])
+ self.assertFailedTestCount(2, self.mtest_command + ['--no-suite', 'subprjmix'])
+
+ self.assertFailedTestCount(1, self.mtest_command + ['--suite', 'mainprj:fail'])
+ self.assertFailedTestCount(0, self.mtest_command + ['--suite', 'mainprj:success'])
+ self.assertFailedTestCount(2, self.mtest_command + ['--no-suite', 'mainprj:fail'])
+ self.assertFailedTestCount(3, self.mtest_command + ['--no-suite', 'mainprj:success'])
+
+ self.assertFailedTestCount(1, self.mtest_command + ['--suite', 'subprjfail:fail'])
+ self.assertFailedTestCount(0, self.mtest_command + ['--suite', 'subprjfail:success'])
+ self.assertFailedTestCount(2, self.mtest_command + ['--no-suite', 'subprjfail:fail'])
+ self.assertFailedTestCount(3, self.mtest_command + ['--no-suite', 'subprjfail:success'])
+
+ self.assertFailedTestCount(0, self.mtest_command + ['--suite', 'subprjsucc:fail'])
+ self.assertFailedTestCount(0, self.mtest_command + ['--suite', 'subprjsucc:success'])
+ self.assertFailedTestCount(3, self.mtest_command + ['--no-suite', 'subprjsucc:fail'])
+ self.assertFailedTestCount(3, self.mtest_command + ['--no-suite', 'subprjsucc:success'])
+
+ self.assertFailedTestCount(1, self.mtest_command + ['--suite', 'subprjmix:fail'])
+ self.assertFailedTestCount(0, self.mtest_command + ['--suite', 'subprjmix:success'])
+ self.assertFailedTestCount(2, self.mtest_command + ['--no-suite', 'subprjmix:fail'])
+ self.assertFailedTestCount(3, self.mtest_command + ['--no-suite', 'subprjmix:success'])
+
+ self.assertFailedTestCount(2, self.mtest_command + ['--suite', 'subprjfail', '--suite', 'subprjmix:fail'])
+ self.assertFailedTestCount(3, self.mtest_command + ['--suite', 'subprjfail', '--suite', 'subprjmix', '--suite', 'mainprj'])
+ self.assertFailedTestCount(2, self.mtest_command + ['--suite', 'subprjfail', '--suite', 'subprjmix', '--suite', 'mainprj', '--no-suite', 'subprjmix:fail'])
+ self.assertFailedTestCount(1, self.mtest_command + ['--suite', 'subprjfail', '--suite', 'subprjmix', '--suite', 'mainprj', '--no-suite', 'subprjmix:fail', 'mainprj-failing_test'])
+
+ self.assertFailedTestCount(1, self.mtest_command + ['--no-suite', 'subprjfail:fail', '--no-suite', 'subprjmix:fail'])
+
def _test_stds_impl(self, testdir, compiler, p):
lang_std = p + '_std'
# Check that all the listed -std=xxx options for this compiler work
diff --git a/test cases/unit/4 suite selection/failing_test.c b/test cases/unit/4 suite selection/failing_test.c
new file mode 100644
index 0000000..bf00907
--- /dev/null
+++ b/test cases/unit/4 suite selection/failing_test.c
@@ -0,0 +1 @@
+int main() { return -1 ; }
diff --git a/test cases/unit/4 suite selection/meson.build b/test cases/unit/4 suite selection/meson.build
new file mode 100644
index 0000000..d3d4e1a
--- /dev/null
+++ b/test cases/unit/4 suite selection/meson.build
@@ -0,0 +1,13 @@
+project('mainprj', 'c')
+
+subproject('subprjfail')
+subproject('subprjsucc')
+subproject('subprjmix')
+
+test('mainprj-failing_test',
+ executable('failing_test', 'failing_test.c'),
+ suite : 'fail')
+
+test('mainprj-successful_test',
+ executable('successful_test', 'successful_test.c'),
+ suite : 'success')
diff --git a/test cases/unit/4 suite selection/subprojects/subprjfail/failing_test.c b/test cases/unit/4 suite selection/subprojects/subprjfail/failing_test.c
new file mode 100644
index 0000000..bf00907
--- /dev/null
+++ b/test cases/unit/4 suite selection/subprojects/subprjfail/failing_test.c
@@ -0,0 +1 @@
+int main() { return -1 ; }
diff --git a/test cases/unit/4 suite selection/subprojects/subprjfail/meson.build b/test cases/unit/4 suite selection/subprojects/subprjfail/meson.build
new file mode 100644
index 0000000..d95f271
--- /dev/null
+++ b/test cases/unit/4 suite selection/subprojects/subprjfail/meson.build
@@ -0,0 +1,5 @@
+project('subprjfail', 'c')
+
+test('subprjfail-failing_test',
+ executable('failing_test', 'failing_test.c'),
+ suite : 'fail')
diff --git a/test cases/unit/4 suite selection/subprojects/subprjmix/failing_test.c b/test cases/unit/4 suite selection/subprojects/subprjmix/failing_test.c
new file mode 100644
index 0000000..bf00907
--- /dev/null
+++ b/test cases/unit/4 suite selection/subprojects/subprjmix/failing_test.c
@@ -0,0 +1 @@
+int main() { return -1 ; }
diff --git a/test cases/unit/4 suite selection/subprojects/subprjmix/meson.build b/test cases/unit/4 suite selection/subprojects/subprjmix/meson.build
new file mode 100644
index 0000000..1d0eeff
--- /dev/null
+++ b/test cases/unit/4 suite selection/subprojects/subprjmix/meson.build
@@ -0,0 +1,9 @@
+project('subprjmix', 'c')
+
+test('subprjmix-failing_test',
+ executable('failing_test', 'failing_test.c'),
+ suite : 'fail')
+
+test('subprjmix-successful_test',
+ executable('successful_test', 'successful_test.c'),
+ suite : 'success')
diff --git a/test cases/unit/4 suite selection/subprojects/subprjmix/successful_test.c b/test cases/unit/4 suite selection/subprojects/subprjmix/successful_test.c
new file mode 100644
index 0000000..29c0525
--- /dev/null
+++ b/test cases/unit/4 suite selection/subprojects/subprjmix/successful_test.c
@@ -0,0 +1 @@
+int main() { return 0 ; }
diff --git a/test cases/unit/4 suite selection/subprojects/subprjsucc/meson.build b/test cases/unit/4 suite selection/subprojects/subprjsucc/meson.build
new file mode 100644
index 0000000..8dafd65
--- /dev/null
+++ b/test cases/unit/4 suite selection/subprojects/subprjsucc/meson.build
@@ -0,0 +1,5 @@
+project('subprjsucc', 'c')
+
+test('subprjsucc-successful_test',
+ executable('successful_test', 'successful_test.c'),
+ suite : 'success')
diff --git a/test cases/unit/4 suite selection/subprojects/subprjsucc/successful_test.c b/test cases/unit/4 suite selection/subprojects/subprjsucc/successful_test.c
new file mode 100644
index 0000000..29c0525
--- /dev/null
+++ b/test cases/unit/4 suite selection/subprojects/subprjsucc/successful_test.c
@@ -0,0 +1 @@
+int main() { return 0 ; }
diff --git a/test cases/unit/4 suite selection/successful_test.c b/test cases/unit/4 suite selection/successful_test.c
new file mode 100644
index 0000000..29c0525
--- /dev/null
+++ b/test cases/unit/4 suite selection/successful_test.c
@@ -0,0 +1 @@
+int main() { return 0 ; }