aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Schwartz <eschwartz@archlinux.org>2022-03-16 18:36:25 -0400
committerEli Schwartz <eschwartz@archlinux.org>2022-03-16 18:39:02 -0400
commit4b0c0810df8e0fae9529d879539b8926b5b278a3 (patch)
tree31f11e73e0141678e8f60e4c16ba492215733f91
parentff844f3a1fd0cac31e2f61add59393b16548c97c (diff)
downloadmeson-4b0c0810df8e0fae9529d879539b8926b5b278a3.zip
meson-4b0c0810df8e0fae9529d879539b8926b5b278a3.tar.gz
meson-4b0c0810df8e0fae9529d879539b8926b5b278a3.tar.bz2
unittests: convert python tests to project tests
Perhaps when this test case was originally created, project tests could not use a matrix of options? This is certainly possible today, so don't write special unittest handling for this instead. This adds proper visibility into what gets run and what doesn't. Now we know which python executables got tested and which got skipped.
-rwxr-xr-xtest cases/python/8 different python versions/blaster.py (renamed from test cases/unit/39 python extmodule/blaster.py)0
-rw-r--r--test cases/python/8 different python versions/ext/meson.build (renamed from test cases/unit/39 python extmodule/ext/meson.build)0
-rw-r--r--test cases/python/8 different python versions/ext/tachyon_module.c (renamed from test cases/unit/39 python extmodule/ext/tachyon_module.c)0
-rw-r--r--test cases/python/8 different python versions/meson.build (renamed from test cases/unit/39 python extmodule/meson.build)0
-rw-r--r--test cases/python/8 different python versions/meson_options.txt (renamed from test cases/unit/39 python extmodule/meson_options.txt)0
-rw-r--r--test cases/python/8 different python versions/test.json13
-rw-r--r--unittests/pythontests.py41
7 files changed, 15 insertions, 39 deletions
diff --git a/test cases/unit/39 python extmodule/blaster.py b/test cases/python/8 different python versions/blaster.py
index 163b6d4..163b6d4 100755
--- a/test cases/unit/39 python extmodule/blaster.py
+++ b/test cases/python/8 different python versions/blaster.py
diff --git a/test cases/unit/39 python extmodule/ext/meson.build b/test cases/python/8 different python versions/ext/meson.build
index b13bb32..b13bb32 100644
--- a/test cases/unit/39 python extmodule/ext/meson.build
+++ b/test cases/python/8 different python versions/ext/meson.build
diff --git a/test cases/unit/39 python extmodule/ext/tachyon_module.c b/test cases/python/8 different python versions/ext/tachyon_module.c
index 68eda53..68eda53 100644
--- a/test cases/unit/39 python extmodule/ext/tachyon_module.c
+++ b/test cases/python/8 different python versions/ext/tachyon_module.c
diff --git a/test cases/unit/39 python extmodule/meson.build b/test cases/python/8 different python versions/meson.build
index 5b44394..5b44394 100644
--- a/test cases/unit/39 python extmodule/meson.build
+++ b/test cases/python/8 different python versions/meson.build
diff --git a/test cases/unit/39 python extmodule/meson_options.txt b/test cases/python/8 different python versions/meson_options.txt
index c85110d..c85110d 100644
--- a/test cases/unit/39 python extmodule/meson_options.txt
+++ b/test cases/python/8 different python versions/meson_options.txt
diff --git a/test cases/python/8 different python versions/test.json b/test cases/python/8 different python versions/test.json
new file mode 100644
index 0000000..fe75a1c
--- /dev/null
+++ b/test cases/python/8 different python versions/test.json
@@ -0,0 +1,13 @@
+{
+ "matrix": {
+ "options": {
+ "python": [
+ { "val": null },
+ { "val": "python2" },
+ { "val": "python3" },
+ { "val": "pypy" },
+ { "val": "pypy3" }
+ ]
+ }
+ }
+}
diff --git a/unittests/pythontests.py b/unittests/pythontests.py
index c8efbdd..27716d7 100644
--- a/unittests/pythontests.py
+++ b/unittests/pythontests.py
@@ -26,48 +26,11 @@ class PythonTests(BasePlatformTests):
Tests that verify compilation of python extension modules
'''
- def test_versions(self):
+ def test_bad_versions(self):
if self.backend is not Backend.ninja:
raise unittest.SkipTest(f'Skipping python tests with {self.backend.name} backend')
- testdir = os.path.join(self.src_root, 'test cases', 'unit', '39 python extmodule')
-
- # No python version specified, this will use meson's python
- self.init(testdir)
- self.build()
- self.run_tests()
- self.wipe()
-
- # When specifying a known name, (python2 / python3) the module
- # will also try 'python' as a fallback and use it if the major
- # version matches
- try:
- self.init(testdir, extra_args=['-Dpython=python2'])
- self.build()
- self.run_tests()
- except unittest.SkipTest:
- # python2 is not necessarily installed on the test machine,
- # if it is not, or the python headers can't be found, the test
- # will raise MESON_SKIP_TEST, we could check beforehand what version
- # of python is available, but it's a bit of a chicken and egg situation,
- # as that is the job of the module, so we just ask for forgiveness rather
- # than permission.
- pass
-
- self.wipe()
-
- for py in ('pypy', 'pypy3'):
- try:
- self.init(testdir, extra_args=['-Dpython=%s' % py])
- except unittest.SkipTest:
- # Same as above, pypy2 and pypy3 are not expected to be present
- # on the test system, the test project only raises in these cases
- continue
-
- # We have a pypy, this is expected to work
- self.build()
- self.run_tests()
- self.wipe()
+ testdir = os.path.join(self.src_root, 'test cases', 'python', '8 different python versions')
# The test is configured to error out with MESON_SKIP_TEST
# in case it could not find python