diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2017-09-30 16:08:41 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2017-09-30 16:08:41 +0300 |
commit | b9c4fc728c6e34cedb387d6844f21456c38ad269 (patch) | |
tree | a90048b4030d592c63771330f344569c4ab72c16 /run_unittests.py | |
parent | 68275b32e80147145cc78607f496255486fb9d92 (diff) | |
download | meson-b9c4fc728c6e34cedb387d6844f21456c38ad269.zip meson-b9c4fc728c6e34cedb387d6844f21456c38ad269.tar.gz meson-b9c4fc728c6e34cedb387d6844f21456c38ad269.tar.bz2 |
Moved prebuilt object test under unittests.
Diffstat (limited to 'run_unittests.py')
-rwxr-xr-x | run_unittests.py | 37 |
1 files changed, 37 insertions, 0 deletions
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): ''' |