aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2017-09-30 16:08:41 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2017-09-30 16:08:41 +0300
commitb9c4fc728c6e34cedb387d6844f21456c38ad269 (patch)
treea90048b4030d592c63771330f344569c4ab72c16
parent68275b32e80147145cc78607f496255486fb9d92 (diff)
downloadmeson-b9c4fc728c6e34cedb387d6844f21456c38ad269.zip
meson-b9c4fc728c6e34cedb387d6844f21456c38ad269.tar.gz
meson-b9c4fc728c6e34cedb387d6844f21456c38ad269.tar.bz2
Moved prebuilt object test under unittests.
-rwxr-xr-xrun_project_tests.py8
-rwxr-xr-xrun_unittests.py37
-rw-r--r--test cases/unit/14 prebuilt object/main.c (renamed from test cases/prebuilt/1 object/main.c)0
-rw-r--r--test cases/unit/14 prebuilt object/meson.build (renamed from test cases/prebuilt/1 object/meson.build)0
-rw-r--r--test cases/unit/14 prebuilt object/source.c (renamed from test cases/prebuilt/1 object/source.c)0
5 files changed, 40 insertions, 5 deletions
diff --git a/run_project_tests.py b/run_project_tests.py
index 426e2c7..03dc8be 100755
--- a/run_project_tests.py
+++ b/run_project_tests.py
@@ -642,9 +642,8 @@ def generate_prebuilt():
object_suffix = 'obj'
else:
object_suffix = 'o'
- objectfile = generate_pb_object(compiler, object_suffix)
stlibfile = generate_pb_static(compiler, object_suffix, static_suffix)
- return objectfile, stlibfile
+ return stlibfile
def check_meson_commands_work():
global backend, meson_command, compile_commands, test_commands, install_commands
@@ -684,14 +683,13 @@ if __name__ == '__main__':
os.chdir(script_dir)
check_format()
check_meson_commands_work()
- pbfiles = generate_prebuilt()
+ pbfile = generate_prebuilt()
try:
all_tests = detect_tests_to_run()
(passing_tests, failing_tests, skipped_tests) = run_tests(all_tests, 'meson-test-run', options.extra_args)
except StopException:
pass
- for f in pbfiles:
- os.unlink(f)
+ os.unlink(pbfile)
print('\nTotal passed tests:', green(str(passing_tests)))
print('Total failed tests:', red(str(failing_tests)))
print('Total skipped tests:', yellow(str(skipped_tests)))
diff --git a/run_unittests.py b/run_unittests.py
index b217714..e307626 100755
--- a/run_unittests.py
+++ b/run_unittests.py
@@ -1298,6 +1298,43 @@ int main(int argc, char **argv) {
for i in targets:
self.assertPathExists(os.path.join(testdir, i))
+ def detect_prebuild_env(self):
+ if mesonbuild.mesonlib.is_windows():
+ object_suffix = 'obj'
+ else:
+ object_suffix = 'o'
+ static_suffix = 'a'
+ if shutil.which('cl'):
+ compiler = 'cl'
+ static_suffix = 'lib'
+ elif shutil.which('cc'):
+ compiler = 'cc'
+ elif shutil.which('gcc'):
+ compiler = 'gcc'
+ else:
+ raise RuntimeError("Could not find C compiler.")
+ return (compiler, object_suffix, static_suffix)
+
+ def pbcompile(self, compiler, source, objectfile):
+ if compiler == 'cl':
+ cmd = [compiler, '/nologo', '/Fo' + objectfile, '/c', source]
+ else:
+ cmd = [compiler, '-c', source, '-o', objectfile]
+ subprocess.check_call(cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
+
+
+ def test_prebuilt_object(self):
+ (compiler, object_suffix, static_suffix) = self.detect_prebuild_env()
+ tdir = os.path.join(self.unit_test_dir, '14 prebuilt object')
+ source = os.path.join(tdir, 'source.c')
+ objectfile = os.path.join(tdir, 'prebuilt.' + object_suffix)
+ self.pbcompile(compiler, source, objectfile)
+ try:
+ self.init(tdir)
+ self.build()
+ self.run_tests()
+ finally:
+ os.unlink(objectfile)
class FailureTests(BasePlatformTests):
'''
diff --git a/test cases/prebuilt/1 object/main.c b/test cases/unit/14 prebuilt object/main.c
index 480bda5..480bda5 100644
--- a/test cases/prebuilt/1 object/main.c
+++ b/test cases/unit/14 prebuilt object/main.c
diff --git a/test cases/prebuilt/1 object/meson.build b/test cases/unit/14 prebuilt object/meson.build
index 92f966b..92f966b 100644
--- a/test cases/prebuilt/1 object/meson.build
+++ b/test cases/unit/14 prebuilt object/meson.build
diff --git a/test cases/prebuilt/1 object/source.c b/test cases/unit/14 prebuilt object/source.c
index f39b4f3..f39b4f3 100644
--- a/test cases/prebuilt/1 object/source.c
+++ b/test cases/unit/14 prebuilt object/source.c