Browse Source

genex: Test preprocessing incomplete expressions.

Stephen Kelly 12 years ago
parent
commit
2aafaccc5e

+ 1 - 0
Tests/RunCMake/include_directories/RunCMakeTest.cmake

@@ -10,3 +10,4 @@ run_cmake(ImportedTarget)
 run_cmake(RelativePathInGenex)
 run_cmake(CMP0021)
 run_cmake(install_config)
+run_cmake(incomplete-genex)

+ 23 - 0
Tests/RunCMake/include_directories/incomplete-genex.cmake

@@ -0,0 +1,23 @@
+project(incomplete-genex)
+
+cmake_policy(SET CMP0022 NEW)
+cmake_policy(SET CMP0023 NEW)
+
+add_library(somelib empty.cpp)
+
+# This test ensures that some internal mechanisms of cmGeneratorExpression
+# do not segfault (#14410).
+
+# Test that cmGeneratorExpression::Preprocess(StripAllGeneratorExpressions)
+# does not segfault
+target_include_directories(somelib PUBLIC
+  "/include;/include/$<BUILD_INTERFACE:subdir"
+)
+
+# Test that cmGeneratorExpression::Preprocess(BuildInterface) does not segfault
+export(TARGETS somelib FILE somelibTargets.cmake)
+
+install(TARGETS somelib EXPORT someExport DESTINATION prefix)
+# Test that cmGeneratorExpression::Preprocess(InstallInterface)
+# and cmGeneratorExpression::Split do not segfault
+install(EXPORT someExport DESTINATION prefix)