aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xrun_tests.py2
-rwxr-xr-xrun_unittests.py23
2 files changed, 16 insertions, 9 deletions
diff --git a/run_tests.py b/run_tests.py
index 77e6754..3396cab 100755
--- a/run_tests.py
+++ b/run_tests.py
@@ -29,7 +29,7 @@ if __name__ == '__main__':
if shutil.which('clang'):
myenv['CC'] = 'clang'
myenv['CXX'] = 'clang++'
- print("'\nRunnint unittests with clang.\n")
+ print('\nRunnint unittests with clang.\n')
returncode += subprocess.call([sys.executable, 'run_unittests.py'], env=myenv)
returncode += subprocess.call([sys.executable, 'run_project_tests.py'] + sys.argv[1:])
sys.exit(returncode)
diff --git a/run_unittests.py b/run_unittests.py
index 07d9250..644a31a 100755
--- a/run_unittests.py
+++ b/run_unittests.py
@@ -16,6 +16,8 @@
import unittest, os, sys, shutil
import subprocess
import re
+import tempfile
+from mesonbuild.environment import detect_ninja
def get_soname(fname):
# HACK, fix to not use shell.
@@ -30,30 +32,35 @@ class LinuxlikeTests(unittest.TestCase):
def setUp(self):
super().setUp()
- src_root = os.path.split(__file__)[0]
- self.builddir = 'unittestdir' # fixme to be unique
+ src_root = os.path.dirname(__file__)
+ self.builddir = tempfile.mkdtemp()
self.meson_command = [sys.executable, os.path.join(src_root, 'meson.py')]
- self.ninja_command = ['ninja', '-C', self.builddir]
+ self.ninja_command = [detect_ninja(), '-C', self.builddir]
self.common_test_dir = os.path.join(src_root, 'test cases/common')
- os.mkdir(self.builddir)
self.output = b''
def tearDown(self):
shutil.rmtree(self.builddir)
super().tearDown()
+ def init(self, srcdir):
+ self.output += subprocess.check_output(self.meson_command + [srcdir, self.builddir])
+
+ def build(self):
+ self.output += subprocess.check_output(self.ninja_command)
+
def test_basic_soname(self):
testdir = os.path.join(self.common_test_dir, '4 shared')
- self.output += subprocess.check_output(self.meson_command + [testdir, self.builddir])
- self.output += subprocess.check_output(self.ninja_command)
+ self.init(testdir)
+ self.build()
lib1 = os.path.join(self.builddir, 'libmylib.so')
soname = get_soname(lib1)
self.assertEqual(soname, b'libmylib.so')
def test_custom_soname(self):
testdir = os.path.join(self.common_test_dir, '27 library versions')
- self.output += subprocess.check_output(self.meson_command + [testdir, self.builddir])
- self.output += subprocess.check_output(self.ninja_command)
+ self.init(testdir)
+ self.build()
lib1 = os.path.join(self.builddir, 'prefixsomelib.suffix')
soname = get_soname(lib1)
self.assertEqual(soname, b'prefixsomelib.suffix')