From bf81aac465bbfe9545393c18328804776defa0e0 Mon Sep 17 00:00:00 2001 From: Daniel Mensinger Date: Sat, 23 Feb 2019 11:50:46 +0100 Subject: [PATCH] cmake: Added project tests --- run_project_tests.py | 1 + test cases/cmake/1 basic/meson.build | 5 +++-- test cases/cmake/2 advanced/installed_files.txt | 2 ++ test cases/cmake/2 advanced/meson.build | 15 +++++++++++++-- .../2 advanced/subprojects/cmMod/lib/cmMod.cpp | 3 ++- .../cmake/2 advanced/subprojects/cmMod/main.cpp | 3 ++- 6 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 test cases/cmake/2 advanced/installed_files.txt diff --git a/run_project_tests.py b/run_project_tests.py index a3aa07d53..c3187ffdc 100755 --- a/run_project_tests.py +++ b/run_project_tests.py @@ -553,6 +553,7 @@ def skip_csharp(backend): def detect_tests_to_run(): # Name, subdirectory, skip condition. all_tests = [ + ('cmake', 'cmake', not shutil.which('cmake')), ('common', 'common', False), ('warning-meson', 'warning', False), ('failing-meson', 'failing', False), diff --git a/test cases/cmake/1 basic/meson.build b/test cases/cmake/1 basic/meson.build index bf2d1780e..de54cced4 100644 --- a/test cases/cmake/1 basic/meson.build +++ b/test cases/cmake/1 basic/meson.build @@ -1,6 +1,7 @@ project('cmakeSubTest', ['cpp']) -subproject('cmMod') +sub_pro = subproject('cmMod', method: 'cmake') +sub_dep = sub_pro.get_variable('cmModLib_dep') -exe1 = executable('main', ['main.cpp']) +exe1 = executable('main', ['main.cpp'], dependencies: [sub_dep]) test('test1', exe1) diff --git a/test cases/cmake/2 advanced/installed_files.txt b/test cases/cmake/2 advanced/installed_files.txt new file mode 100644 index 000000000..40235a5d1 --- /dev/null +++ b/test cases/cmake/2 advanced/installed_files.txt @@ -0,0 +1,2 @@ +usr/lib/libcmModLib.so +usr/bin/testEXE \ No newline at end of file diff --git a/test cases/cmake/2 advanced/meson.build b/test cases/cmake/2 advanced/meson.build index eb5dab18c..b3acc9785 100644 --- a/test cases/cmake/2 advanced/meson.build +++ b/test cases/cmake/2 advanced/meson.build @@ -1,6 +1,17 @@ project('cmakeSubTest_advanced', ['cpp']) -subproject('cmMod') +# Test the "normal" subproject call +sub_pro = subproject('cmMod') +sub_dep = sub_pro.get_variable('cmModLib_dep') -exe1 = executable('main', ['main.cpp']) +# Test the dependency shortcut +shortcut_dep = dependency('ttabadbneiobevn', fallback: ['cmMod', 'cmModLib_dep']) + +# Build some files +exe1 = executable('main1', ['main.cpp'], dependencies: [sub_dep]) +exe2 = executable('main2', ['main.cpp'], dependencies: [shortcut_dep]) test('test1', exe1) +test('test2', exe2) + +# Test if we can also extract executables +test('test3', sub_pro.get_variable('testEXE')) diff --git a/test cases/cmake/2 advanced/subprojects/cmMod/lib/cmMod.cpp b/test cases/cmake/2 advanced/subprojects/cmMod/lib/cmMod.cpp index d3141d512..cb20844c3 100644 --- a/test cases/cmake/2 advanced/subprojects/cmMod/lib/cmMod.cpp +++ b/test cases/cmake/2 advanced/subprojects/cmMod/lib/cmMod.cpp @@ -1,9 +1,10 @@ #include "cmMod.hpp" +#include using namespace std; cmModClass::cmModClass(string foo) { - str = foo + " World"; + str = foo + " World " + zlibVersion(); } string cmModClass::getStr() const { diff --git a/test cases/cmake/2 advanced/subprojects/cmMod/main.cpp b/test cases/cmake/2 advanced/subprojects/cmMod/main.cpp index cd2104217..a1b1637fe 100644 --- a/test cases/cmake/2 advanced/subprojects/cmMod/main.cpp +++ b/test cases/cmake/2 advanced/subprojects/cmMod/main.cpp @@ -1,10 +1,11 @@ #include +#include #include "lib/cmMod.hpp" using namespace std; int main() { cmModClass obj("Hello (LIB TEST)"); - cout << obj.getStr() << endl; + cout << obj.getStr() << " ZLIB: " << zlibVersion() << endl; return 0; }