diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 880776be0d..38d115defe 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -1369,6 +1369,7 @@ add_RunCMake_test("CTestCommandExpandLists") add_RunCMake_test(PrecompileHeaders -DCMAKE_C_COMPILER_ID=${CMAKE_C_COMPILER_ID} -DCMAKE_C_SIMULATE_ID=${CMAKE_C_SIMULATE_ID} -DCMAKE_C_COMPILER_VERSION=${CMAKE_C_COMPILER_VERSION}) +add_RunCMake_test(PrecompileHeaders-Reuse -DCMAKE_C_COMPILER_ID=${CMAKE_C_COMPILER_ID}) # This test can take a long time due to the number of test cases. # Provide an option to customize it. diff --git a/Tests/RunCMake/PrecompileHeaders-Reuse/CMakeLists.txt b/Tests/RunCMake/PrecompileHeaders-Reuse/CMakeLists.txt new file mode 100644 index 0000000000..7dbf32e861 --- /dev/null +++ b/Tests/RunCMake/PrecompileHeaders-Reuse/CMakeLists.txt @@ -0,0 +1,3 @@ +cmake_minimum_required(VERSION 3.15.0) +project(${RunCMake_TEST} NONE) +include(${RunCMake_TEST}.cmake) diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseAppend-build-stderr.txt b/Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseAppend-build-stderr.txt similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/PchReuseAppend-build-stderr.txt rename to Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseAppend-build-stderr.txt diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseAppend.cmake b/Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseAppend.cmake similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/PchReuseAppend.cmake rename to Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseAppend.cmake diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseConsistency-build-stderr.txt b/Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseConsistency-build-stderr.txt similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/PchReuseConsistency-build-stderr.txt rename to Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseConsistency-build-stderr.txt diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseConsistency.cmake b/Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseConsistency.cmake similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/PchReuseConsistency.cmake rename to Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseConsistency.cmake diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseDeclarationOrder-build-stderr.txt b/Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseDeclarationOrder-build-stderr.txt similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/PchReuseDeclarationOrder-build-stderr.txt rename to Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseDeclarationOrder-build-stderr.txt diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseDeclarationOrder.cmake b/Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseDeclarationOrder.cmake similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/PchReuseDeclarationOrder.cmake rename to Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseDeclarationOrder.cmake diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseFrom-CMP0141-NEW-empty.cmake b/Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFrom-CMP0141-NEW-empty.cmake similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/PchReuseFrom-CMP0141-NEW-empty.cmake rename to Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFrom-CMP0141-NEW-empty.cmake diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseFrom-CMP0141-NEW.cmake b/Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFrom-CMP0141-NEW.cmake similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/PchReuseFrom-CMP0141-NEW.cmake rename to Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFrom-CMP0141-NEW.cmake diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseFrom-CMP0141-OLD-stderr.txt b/Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFrom-CMP0141-OLD-stderr.txt similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/PchReuseFrom-CMP0141-OLD-stderr.txt rename to Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFrom-CMP0141-OLD-stderr.txt diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseFrom-CMP0141-OLD.cmake b/Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFrom-CMP0141-OLD.cmake similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/PchReuseFrom-CMP0141-OLD.cmake rename to Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFrom-CMP0141-OLD.cmake diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseFrom-CMP0141-common.cmake b/Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFrom-CMP0141-common.cmake similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/PchReuseFrom-CMP0141-common.cmake rename to Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFrom-CMP0141-common.cmake diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseFromCycle-result.txt b/Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromCycle-result.txt similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/PchReuseFromCycle-result.txt rename to Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromCycle-result.txt diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseFromCycle-stderr.txt b/Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromCycle-stderr.txt similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/PchReuseFromCycle-stderr.txt rename to Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromCycle-stderr.txt diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseFromCycle.cmake b/Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromCycle.cmake similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/PchReuseFromCycle.cmake rename to Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromCycle.cmake diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseFromIgnoreOwnProps-build-check.cmake b/Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromIgnoreOwnProps-build-check.cmake similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/PchReuseFromIgnoreOwnProps-build-check.cmake rename to Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromIgnoreOwnProps-build-check.cmake diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseFromIgnoreOwnProps-build-stderr.txt b/Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromIgnoreOwnProps-build-stderr.txt similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/PchReuseFromIgnoreOwnProps-build-stderr.txt rename to Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromIgnoreOwnProps-build-stderr.txt diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseFromIgnoreOwnProps.cmake b/Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromIgnoreOwnProps.cmake similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/PchReuseFromIgnoreOwnProps.cmake rename to Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromIgnoreOwnProps.cmake diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseFromObjLib.cmake b/Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromObjLib.cmake similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/PchReuseFromObjLib.cmake rename to Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromObjLib.cmake diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseFromPrefixed-build-stderr.txt b/Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromPrefixed-build-stderr.txt similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/PchReuseFromPrefixed-build-stderr.txt rename to Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromPrefixed-build-stderr.txt diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseFromPrefixed.cmake b/Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromPrefixed.cmake similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/PchReuseFromPrefixed.cmake rename to Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromPrefixed.cmake diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseFromSubdir-build-stderr.txt b/Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromSubdir-build-stderr.txt similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/PchReuseFromSubdir-build-stderr.txt rename to Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromSubdir-build-stderr.txt diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseFromSubdir.cmake b/Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromSubdir.cmake similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/PchReuseFromSubdir.cmake rename to Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromSubdir.cmake diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseFromUseUpdatedProps-build-check.cmake b/Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromUseUpdatedProps-build-check.cmake similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/PchReuseFromUseUpdatedProps-build-check.cmake rename to Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromUseUpdatedProps-build-check.cmake diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseFromUseUpdatedProps-build-stderr.txt b/Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromUseUpdatedProps-build-stderr.txt similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/PchReuseFromUseUpdatedProps-build-stderr.txt rename to Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromUseUpdatedProps-build-stderr.txt diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseFromUseUpdatedProps.cmake b/Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromUseUpdatedProps.cmake similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/PchReuseFromUseUpdatedProps.cmake rename to Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseFromUseUpdatedProps.cmake diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseWithoutPch-stderr.txt b/Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseWithoutPch-stderr.txt similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/PchReuseWithoutPch-stderr.txt rename to Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseWithoutPch-stderr.txt diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseWithoutPch.cmake b/Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseWithoutPch.cmake similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/PchReuseWithoutPch.cmake rename to Tests/RunCMake/PrecompileHeaders-Reuse/PchReuseWithoutPch.cmake diff --git a/Tests/RunCMake/PrecompileHeaders-Reuse/RunCMakeTest.cmake b/Tests/RunCMake/PrecompileHeaders-Reuse/RunCMakeTest.cmake new file mode 100644 index 0000000000..2c38783970 --- /dev/null +++ b/Tests/RunCMake/PrecompileHeaders-Reuse/RunCMakeTest.cmake @@ -0,0 +1,32 @@ +include(RunCMake) + +function(run_test name) + set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${name}-build) + run_cmake(${name}) + set(RunCMake_TEST_NO_CLEAN 1) + run_cmake_command(${name}-build ${CMAKE_COMMAND} --build . --config Debug) + run_cmake_command(${name}-test ${CMAKE_CTEST_COMMAND} -C Debug) +endfunction() + +function(run_build_verbose name) + set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${name}-build) + run_cmake(${name}) + set(RunCMake_TEST_NO_CLEAN 1) + run_cmake_command(${name}-build ${CMAKE_COMMAND} --build . --verbose --config Debug) +endfunction() + +run_test(PchReuseFrom-CMP0141-OLD) +run_test(PchReuseFrom-CMP0141-NEW) +if(CMAKE_C_COMPILER_ID STREQUAL "MSVC") + run_test(PchReuseFrom-CMP0141-NEW-empty) +endif() +run_test(PchReuseFromPrefixed) +run_test(PchReuseFromSubdir) +run_build_verbose(PchReuseFromIgnoreOwnProps) +run_build_verbose(PchReuseFromUseUpdatedProps) +run_build_verbose(PchReuseConsistency) +run_cmake(PchReuseFromCycle) +run_cmake(PchReuseWithoutPch) +run_build_verbose(PchReuseAppend) +run_build_verbose(PchReuseDeclarationOrder) +run_test(PchReuseFromObjLib) diff --git a/Tests/RunCMake/PrecompileHeaders-Reuse/empty.c b/Tests/RunCMake/PrecompileHeaders-Reuse/empty.c new file mode 100644 index 0000000000..2a51ebc19e --- /dev/null +++ b/Tests/RunCMake/PrecompileHeaders-Reuse/empty.c @@ -0,0 +1,3 @@ +void nothing(void) +{ +} diff --git a/Tests/RunCMake/PrecompileHeaders-Reuse/foo.c b/Tests/RunCMake/PrecompileHeaders-Reuse/foo.c new file mode 100644 index 0000000000..a4710fdd6d --- /dev/null +++ b/Tests/RunCMake/PrecompileHeaders-Reuse/foo.c @@ -0,0 +1,13 @@ +#include "foo.h" + +#include "foo2.h" + +int foo(void) +{ + return 0; +} + +int foo2(void) +{ + return 0; +} diff --git a/Tests/RunCMake/PrecompileHeaders-Reuse/foobar.c b/Tests/RunCMake/PrecompileHeaders-Reuse/foobar.c new file mode 100644 index 0000000000..71ebe370e1 --- /dev/null +++ b/Tests/RunCMake/PrecompileHeaders-Reuse/foobar.c @@ -0,0 +1,14 @@ +#include "bar.h" +#include "foo.h" +#include "foo2.h" + +int main(void) +{ + int zeroSize = 0; + +#ifdef HAVE_PCH_SUPPORT + zeroSize = (int)strlen(""); +#endif + + return foo() + foo2() + bar() + zeroSize; +} diff --git a/Tests/RunCMake/PrecompileHeaders-Reuse/include/bar.h b/Tests/RunCMake/PrecompileHeaders-Reuse/include/bar.h new file mode 100644 index 0000000000..89a156c53e --- /dev/null +++ b/Tests/RunCMake/PrecompileHeaders-Reuse/include/bar.h @@ -0,0 +1,9 @@ +#ifndef bar_h +#define bar_h + +static int bar(void) +{ + return 0; +} + +#endif diff --git a/Tests/RunCMake/PrecompileHeaders-Reuse/include/foo.h b/Tests/RunCMake/PrecompileHeaders-Reuse/include/foo.h new file mode 100644 index 0000000000..fc0ae143a8 --- /dev/null +++ b/Tests/RunCMake/PrecompileHeaders-Reuse/include/foo.h @@ -0,0 +1,6 @@ +#ifndef foo_h +#define foo_h + +int foo(void); + +#endif diff --git a/Tests/RunCMake/PrecompileHeaders-Reuse/include/foo2.h b/Tests/RunCMake/PrecompileHeaders-Reuse/include/foo2.h new file mode 100644 index 0000000000..4bf9c8167d --- /dev/null +++ b/Tests/RunCMake/PrecompileHeaders-Reuse/include/foo2.h @@ -0,0 +1,6 @@ +#ifndef foo2_h +#define foo2_h + +int foo2(void); + +#endif diff --git a/Tests/RunCMake/PrecompileHeaders/subdir/CMakeLists.txt b/Tests/RunCMake/PrecompileHeaders-Reuse/subdir/CMakeLists.txt similarity index 100% rename from Tests/RunCMake/PrecompileHeaders/subdir/CMakeLists.txt rename to Tests/RunCMake/PrecompileHeaders-Reuse/subdir/CMakeLists.txt diff --git a/Tests/RunCMake/PrecompileHeaders/RunCMakeTest.cmake b/Tests/RunCMake/PrecompileHeaders/RunCMakeTest.cmake index 35b2fe37f4..58c45f5836 100644 --- a/Tests/RunCMake/PrecompileHeaders/RunCMakeTest.cmake +++ b/Tests/RunCMake/PrecompileHeaders/RunCMakeTest.cmake @@ -8,13 +8,6 @@ function(run_test name) run_cmake_command(${name}-test ${CMAKE_CTEST_COMMAND} -C Debug) endfunction() -function(run_build_verbose name) - set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${name}-build) - run_cmake(${name}) - set(RunCMake_TEST_NO_CLEAN 1) - run_cmake_command(${name}-build ${CMAKE_COMMAND} --build . --verbose --config Debug) -endfunction() - run_cmake(DisabledPch) run_cmake(PchDebugGenex) if (RunCMake_GENERATOR MATCHES "(Ninja|Makefiles|Visual Studio)") @@ -28,21 +21,7 @@ run_test(PchInterfaceUnity) run_cmake(PchPrologueEpilogue) run_test(SkipPrecompileHeaders) run_test(CXXnotC) -run_test(PchReuseFrom-CMP0141-OLD) -run_test(PchReuseFrom-CMP0141-NEW) -if(CMAKE_C_COMPILER_ID STREQUAL "MSVC") - run_test(PchReuseFrom-CMP0141-NEW-empty) -endif() -run_test(PchReuseFromPrefixed) -run_test(PchReuseFromSubdir) -run_build_verbose(PchReuseFromIgnoreOwnProps) -run_build_verbose(PchReuseFromUseUpdatedProps) -run_build_verbose(PchReuseConsistency) -run_cmake(PchReuseFromCycle) -run_cmake(PchReuseWithoutPch) -run_build_verbose(PchReuseAppend) run_cmake(PchMultilanguage) -run_build_verbose(PchReuseDeclarationOrder) if(RunCMake_GENERATOR MATCHES "Make|Ninja") run_cmake(PchWarnInvalid) @@ -52,7 +31,6 @@ if(RunCMake_GENERATOR MATCHES "Make|Ninja") run_cmake(PchInstantiateTemplates) endif() endif() -run_test(PchReuseFromObjLib) run_test(PchIncludedAllLanguages) run_test(PchIncludedOneLanguage) run_test(PchLibObjLibExe)