summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2022-02-24 15:42:09 (GMT)
committerBrad King <brad.king@kitware.com>2022-02-24 22:41:46 (GMT)
commitef162bb40bcda8dcbd561ed2b1a6c4bd46288add (patch)
tree43f8b9d9831dc16bdeecfc9855d7f2a5fd592cda
parent802b76140d782d1482ddbff676fee6108b1224b5 (diff)
downloadCMake-ef162bb40bcda8dcbd561ed2b1a6c4bd46288add.zip
CMake-ef162bb40bcda8dcbd561ed2b1a6c4bd46288add.tar.gz
CMake-ef162bb40bcda8dcbd561ed2b1a6c4bd46288add.tar.bz2
Tests: Extend RunCMake.SymlinkTrees with more symlink layouts
Inspired-by: Ben Boeckel <ben.boeckel@kitware.com> Issue: #16228
-rw-r--r--Tests/RunCMake/SymlinkTrees/RunCMakeTest.cmake147
-rw-r--r--Tests/RunCMake/SymlinkTrees/asymmetric-bin_in_src-exe-build-stdout.txt4
-rw-r--r--Tests/RunCMake/SymlinkTrees/asymmetric-bin_in_src-stdout.txt4
-rw-r--r--Tests/RunCMake/SymlinkTrees/asymmetric-separate-exe-build-stdout.txt4
-rw-r--r--Tests/RunCMake/SymlinkTrees/asymmetric-separate-stdout.txt4
-rw-r--r--Tests/RunCMake/SymlinkTrees/asymmetric-src_in_bin-exe-build-stdout.txt4
-rw-r--r--Tests/RunCMake/SymlinkTrees/asymmetric-src_in_bin-stdout.txt4
-rw-r--r--Tests/RunCMake/SymlinkTrees/common-bin_in_src-exe-build-stdout.txt4
-rw-r--r--Tests/RunCMake/SymlinkTrees/common-bin_in_src-stdout.txt4
-rw-r--r--Tests/RunCMake/SymlinkTrees/common-src_in_bin-exe-build-stdout.txt4
-rw-r--r--Tests/RunCMake/SymlinkTrees/common-src_in_bin-stdout.txt4
-rw-r--r--Tests/RunCMake/SymlinkTrees/different-bin_in_src-exe-build-stdout.txt4
-rw-r--r--Tests/RunCMake/SymlinkTrees/different-bin_in_src-stdout.txt4
-rw-r--r--Tests/RunCMake/SymlinkTrees/different-separate-exe-build-stdout.txt4
-rw-r--r--Tests/RunCMake/SymlinkTrees/different-separate-stdout.txt4
-rw-r--r--Tests/RunCMake/SymlinkTrees/different-src_in_bin-exe-build-stdout.txt4
-rw-r--r--Tests/RunCMake/SymlinkTrees/different-src_in_bin-stdout.txt4
-rw-r--r--Tests/RunCMake/SymlinkTrees/none-bin_in_src-exe-build-stdout.txt4
-rw-r--r--Tests/RunCMake/SymlinkTrees/none-bin_in_src-stdout.txt4
-rw-r--r--Tests/RunCMake/SymlinkTrees/none-separate-exe-build-stdout.txt4
-rw-r--r--Tests/RunCMake/SymlinkTrees/none-separate-stdout.txt4
-rw-r--r--Tests/RunCMake/SymlinkTrees/none-src_in_bin-exe-build-stdout.txt4
-rw-r--r--Tests/RunCMake/SymlinkTrees/none-src_in_bin-stdout.txt4
23 files changed, 235 insertions, 0 deletions
diff --git a/Tests/RunCMake/SymlinkTrees/RunCMakeTest.cmake b/Tests/RunCMake/SymlinkTrees/RunCMakeTest.cmake
index 72676d2..304e9de 100644
--- a/Tests/RunCMake/SymlinkTrees/RunCMakeTest.cmake
+++ b/Tests/RunCMake/SymlinkTrees/RunCMakeTest.cmake
@@ -76,6 +76,18 @@ function (run_symlink_test case src bin src_from_bin bin_from_src)
run_symlink_test_case("${case}" -S "../${name}/${src}" -B "../${name}/${bin}")
# Verify paths passed to compiler.
+ if(case MATCHES "^(different|asymmetric)-bin_in_src$")
+ # FIXME: Some generators compute incorrect relative paths.
+ message(STATUS "${case}-exe - SKIPPED")
+ message(STATUS "${case}-exe-build - SKIPPED")
+ return()
+ endif()
+ if(case MATCHES "^(different|asymmetric)-src_in_bin$" AND RunCMake_GENERATOR STREQUAL "Xcode")
+ # FIXME: The Xcode generator computes an incorrect relative path.
+ message(STATUS "${case}-exe - SKIPPED")
+ message(STATUS "${case}-exe-build - SKIPPED")
+ return()
+ endif()
unset(RunCMake_TEST_VARIANT_DESCRIPTION)
run_symlink_test_case("${case}-exe" -S "${src}" -B "${bin}")
if (RunCMake_GENERATOR MATCHES "Xcode")
@@ -88,6 +100,33 @@ endfunction ()
# Create the following structure:
#
+# .../none/source
+# .../none/binary
+file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/none")
+file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/none/source")
+file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/none/binary")
+run_symlink_test(none-separate "source" "binary" "../source" "../binary")
+
+# Create the following structure:
+#
+# .../none/source
+# .../none/source/binary
+file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/none")
+file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/none/source")
+file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/none/source/binary")
+run_symlink_test(none-bin_in_src "source" "source/binary" ".." "binary")
+
+# Create the following structure:
+#
+# .../none/binary
+# .../none/binary/source
+file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/none")
+file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/none/binary")
+file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/none/binary/source")
+run_symlink_test(none-src_in_bin "binary/source" "binary" "source" "..")
+
+# Create the following structure:
+#
# .../common_real/source
# .../common_real/binary
# .../common -> common_real
@@ -97,3 +136,111 @@ file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/common_real/source")
file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/common_real/binary")
file(CREATE_LINK "common_real" "${RunCMake_BINARY_DIR}/common" SYMBOLIC)
run_symlink_test(common-separate "source" "binary" "../source" "../binary")
+
+# Create the following structure:
+#
+# .../common_real/source
+# .../common_real/source/binary
+# .../common -> common_real
+file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/common_real")
+file(REMOVE "${RunCMake_BINARY_DIR}/common")
+file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/common_real/source")
+file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/common_real/source/binary")
+file(CREATE_LINK "common_real" "${RunCMake_BINARY_DIR}/common" SYMBOLIC)
+run_symlink_test(common-bin_in_src "source" "source/binary" ".." "binary")
+
+# Create the following structure:
+#
+# .../common_real/binary
+# .../common_real/binary/source
+# .../common -> common_real
+file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/common_real")
+file(REMOVE "${RunCMake_BINARY_DIR}/common")
+file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/common_real/binary")
+file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/common_real/binary/source")
+file(CREATE_LINK "common_real" "${RunCMake_BINARY_DIR}/common" SYMBOLIC)
+run_symlink_test(common-src_in_bin "binary/source" "binary" "source" "..")
+
+# Create the following structure:
+#
+# .../different_src/source_real
+# .../different_bin/binary_real
+# .../different/source -> ../different_src/source_real
+# .../different/binary -> ../different_bin/binary_real
+file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/different")
+file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/different_src")
+file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/different_bin")
+file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/different")
+file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/different_src/source_real")
+file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/different_bin/binary_real")
+file(CREATE_LINK "../different_src/source_real" "${RunCMake_BINARY_DIR}/different/source" SYMBOLIC)
+file(CREATE_LINK "../different_bin/binary_real" "${RunCMake_BINARY_DIR}/different/binary" SYMBOLIC)
+run_symlink_test(different-separate "source" "binary" "../../different/source" "../../different/binary")
+
+# Create the following structure:
+#
+# .../different_src/source_real
+# .../different_bin/binary_real
+# .../different/source -> ../different_src/source_real
+# .../different_src/source_real/binary -> ../../different_bin/binary_real
+file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/different")
+file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/different_src")
+file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/different_bin")
+file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/different")
+file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/different_src/source_real")
+file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/different_bin/binary_real")
+file(CREATE_LINK "../different_src/source_real" "${RunCMake_BINARY_DIR}/different/source" SYMBOLIC)
+file(CREATE_LINK "../../different_bin/binary_real" "${RunCMake_BINARY_DIR}/different_src/source_real/binary" SYMBOLIC)
+run_symlink_test(different-bin_in_src "source" "source/binary" "../../different/source" "binary")
+
+# Create the following structure:
+#
+# .../different_src/source_real
+# .../different_bin/binary_real
+# .../different/binary -> ../different_bin/binary_real
+# .../different_bin/binary_real/source -> ../../different_src/source_real
+file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/different")
+file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/different_src")
+file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/different_bin")
+file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/different")
+file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/different_src/source_real")
+file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/different_bin/binary_real")
+file(CREATE_LINK "../different_bin/binary_real" "${RunCMake_BINARY_DIR}/different/binary" SYMBOLIC)
+file(CREATE_LINK "../../different_src/source_real" "${RunCMake_BINARY_DIR}/different_bin/binary_real/source" SYMBOLIC)
+run_symlink_test(different-src_in_bin "binary/source" "binary" "source" "../../different/binary")
+
+# Create the following structure:
+#
+# .../asymmetric_real/path/binary
+# .../asymmetric/source
+# .../asymmetric/binary -> ../asymmetric_real/path/binary
+file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/asymmetric")
+file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/asymmetric_real")
+file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/asymmetric/source")
+file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/asymmetric_real/path/binary")
+file(CREATE_LINK "../asymmetric_real/path/binary" "${RunCMake_BINARY_DIR}/asymmetric/binary" SYMBOLIC)
+run_symlink_test(asymmetric-separate "source" "binary" "../../../asymmetric/source" "../binary")
+
+# Create the following structure:
+#
+# .../asymmetric_real/path/binary
+# .../asymmetric/source
+# .../asymmetric/source/binary -> ../../asymmetric_real/path/binary
+file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/asymmetric")
+file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/asymmetric_real")
+file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/asymmetric/source")
+file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/asymmetric_real/path/binary")
+file(CREATE_LINK "../../asymmetric_real/path/binary" "${RunCMake_BINARY_DIR}/asymmetric/source/binary" SYMBOLIC)
+run_symlink_test(asymmetric-bin_in_src "source" "source/binary" "../../../asymmetric/source" "binary")
+
+# Create the following structure:
+#
+# .../asymmetric_real/path/source
+# .../asymmetric/binary
+# .../asymmetric/binary/source -> ../../asymmetric_real/path/source
+file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/asymmetric")
+file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/asymmetric_real")
+file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/asymmetric/binary")
+file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/asymmetric_real/path/source")
+file(CREATE_LINK "../../asymmetric_real/path/source" "${RunCMake_BINARY_DIR}/asymmetric/binary/source" SYMBOLIC)
+run_symlink_test(asymmetric-src_in_bin "binary/source" "binary" "source" "../../../asymmetric/binary")
diff --git a/Tests/RunCMake/SymlinkTrees/asymmetric-bin_in_src-exe-build-stdout.txt b/Tests/RunCMake/SymlinkTrees/asymmetric-bin_in_src-exe-build-stdout.txt
new file mode 100644
index 0000000..450d9f1
--- /dev/null
+++ b/Tests/RunCMake/SymlinkTrees/asymmetric-bin_in_src-exe-build-stdout.txt
@@ -0,0 +1,4 @@
+source.c: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/source/source.c'
+source.h: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/source/include/source.h'
+binary.c: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/source/binary/binary.c'
+binary.h: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/source/binary/include/binary.h'
diff --git a/Tests/RunCMake/SymlinkTrees/asymmetric-bin_in_src-stdout.txt b/Tests/RunCMake/SymlinkTrees/asymmetric-bin_in_src-stdout.txt
new file mode 100644
index 0000000..bc19ac9
--- /dev/null
+++ b/Tests/RunCMake/SymlinkTrees/asymmetric-bin_in_src-stdout.txt
@@ -0,0 +1,4 @@
+-- source: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/source'
+-- binary: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/source/binary'
+-- real source: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/source'
+-- real binary: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric_real/path/binary'
diff --git a/Tests/RunCMake/SymlinkTrees/asymmetric-separate-exe-build-stdout.txt b/Tests/RunCMake/SymlinkTrees/asymmetric-separate-exe-build-stdout.txt
new file mode 100644
index 0000000..c1ad9d7
--- /dev/null
+++ b/Tests/RunCMake/SymlinkTrees/asymmetric-separate-exe-build-stdout.txt
@@ -0,0 +1,4 @@
+source.c: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/source/source.c'
+source.h: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/source/include/source.h'
+binary.c: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/binary/binary.c'
+binary.h: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/binary/include/binary.h'
diff --git a/Tests/RunCMake/SymlinkTrees/asymmetric-separate-stdout.txt b/Tests/RunCMake/SymlinkTrees/asymmetric-separate-stdout.txt
new file mode 100644
index 0000000..f103630
--- /dev/null
+++ b/Tests/RunCMake/SymlinkTrees/asymmetric-separate-stdout.txt
@@ -0,0 +1,4 @@
+-- source: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/source'
+-- binary: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/binary'
+-- real source: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/source'
+-- real binary: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric_real/path/binary'
diff --git a/Tests/RunCMake/SymlinkTrees/asymmetric-src_in_bin-exe-build-stdout.txt b/Tests/RunCMake/SymlinkTrees/asymmetric-src_in_bin-exe-build-stdout.txt
new file mode 100644
index 0000000..4a33651
--- /dev/null
+++ b/Tests/RunCMake/SymlinkTrees/asymmetric-src_in_bin-exe-build-stdout.txt
@@ -0,0 +1,4 @@
+source.c: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/binary/source/source.c'
+source.h: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/binary/source/include/source.h'
+binary.c: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/binary/binary.c'
+binary.h: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/binary/include/binary.h'
diff --git a/Tests/RunCMake/SymlinkTrees/asymmetric-src_in_bin-stdout.txt b/Tests/RunCMake/SymlinkTrees/asymmetric-src_in_bin-stdout.txt
new file mode 100644
index 0000000..6b6bf11
--- /dev/null
+++ b/Tests/RunCMake/SymlinkTrees/asymmetric-src_in_bin-stdout.txt
@@ -0,0 +1,4 @@
+-- source: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/binary/source'
+-- binary: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/binary'
+-- real source: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric_real/path/source'
+-- real binary: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/binary'
diff --git a/Tests/RunCMake/SymlinkTrees/common-bin_in_src-exe-build-stdout.txt b/Tests/RunCMake/SymlinkTrees/common-bin_in_src-exe-build-stdout.txt
new file mode 100644
index 0000000..d72e250
--- /dev/null
+++ b/Tests/RunCMake/SymlinkTrees/common-bin_in_src-exe-build-stdout.txt
@@ -0,0 +1,4 @@
+source.c: '[^']*/Tests/RunCMake/SymlinkTrees/common/source/source.c'
+source.h: '[^']*/Tests/RunCMake/SymlinkTrees/common/source/include/source.h'
+binary.c: '[^']*/Tests/RunCMake/SymlinkTrees/common/source/binary/binary.c'
+binary.h: '[^']*/Tests/RunCMake/SymlinkTrees/common/source/binary/include/binary.h'
diff --git a/Tests/RunCMake/SymlinkTrees/common-bin_in_src-stdout.txt b/Tests/RunCMake/SymlinkTrees/common-bin_in_src-stdout.txt
new file mode 100644
index 0000000..90dcf02
--- /dev/null
+++ b/Tests/RunCMake/SymlinkTrees/common-bin_in_src-stdout.txt
@@ -0,0 +1,4 @@
+-- source: '[^']*/Tests/RunCMake/SymlinkTrees/common/source'
+-- binary: '[^']*/Tests/RunCMake/SymlinkTrees/common/source/binary'
+-- real source: '[^']*/Tests/RunCMake/SymlinkTrees/common_real/source'
+-- real binary: '[^']*/Tests/RunCMake/SymlinkTrees/common_real/source/binary'
diff --git a/Tests/RunCMake/SymlinkTrees/common-src_in_bin-exe-build-stdout.txt b/Tests/RunCMake/SymlinkTrees/common-src_in_bin-exe-build-stdout.txt
new file mode 100644
index 0000000..aa0d60a
--- /dev/null
+++ b/Tests/RunCMake/SymlinkTrees/common-src_in_bin-exe-build-stdout.txt
@@ -0,0 +1,4 @@
+source.c: '[^']*/Tests/RunCMake/SymlinkTrees/common/binary/source/source.c'
+source.h: '[^']*/Tests/RunCMake/SymlinkTrees/common/binary/source/include/source.h'
+binary.c: '[^']*/Tests/RunCMake/SymlinkTrees/common/binary/binary.c'
+binary.h: '[^']*/Tests/RunCMake/SymlinkTrees/common/binary/include/binary.h'
diff --git a/Tests/RunCMake/SymlinkTrees/common-src_in_bin-stdout.txt b/Tests/RunCMake/SymlinkTrees/common-src_in_bin-stdout.txt
new file mode 100644
index 0000000..fc9db21
--- /dev/null
+++ b/Tests/RunCMake/SymlinkTrees/common-src_in_bin-stdout.txt
@@ -0,0 +1,4 @@
+-- source: '[^']*/Tests/RunCMake/SymlinkTrees/common/binary/source'
+-- binary: '[^']*/Tests/RunCMake/SymlinkTrees/common/binary'
+-- real source: '[^']*/Tests/RunCMake/SymlinkTrees/common_real/binary/source'
+-- real binary: '[^']*/Tests/RunCMake/SymlinkTrees/common_real/binary'
diff --git a/Tests/RunCMake/SymlinkTrees/different-bin_in_src-exe-build-stdout.txt b/Tests/RunCMake/SymlinkTrees/different-bin_in_src-exe-build-stdout.txt
new file mode 100644
index 0000000..1bd1559
--- /dev/null
+++ b/Tests/RunCMake/SymlinkTrees/different-bin_in_src-exe-build-stdout.txt
@@ -0,0 +1,4 @@
+source.c: '[^']*/Tests/RunCMake/SymlinkTrees/different/source/source.c'
+source.h: '[^']*/Tests/RunCMake/SymlinkTrees/different/source/include/source.h'
+binary.c: '[^']*/Tests/RunCMake/SymlinkTrees/different/source/binary/binary.c'
+binary.h: '[^']*/Tests/RunCMake/SymlinkTrees/different/source/binary/include/binary.h'
diff --git a/Tests/RunCMake/SymlinkTrees/different-bin_in_src-stdout.txt b/Tests/RunCMake/SymlinkTrees/different-bin_in_src-stdout.txt
new file mode 100644
index 0000000..0533872
--- /dev/null
+++ b/Tests/RunCMake/SymlinkTrees/different-bin_in_src-stdout.txt
@@ -0,0 +1,4 @@
+-- source: '[^']*/Tests/RunCMake/SymlinkTrees/different/source'
+-- binary: '[^']*/Tests/RunCMake/SymlinkTrees/different/source/binary'
+-- real source: '[^']*/Tests/RunCMake/SymlinkTrees/different_src/source_real'
+-- real binary: '[^']*/Tests/RunCMake/SymlinkTrees/different_bin/binary_real'
diff --git a/Tests/RunCMake/SymlinkTrees/different-separate-exe-build-stdout.txt b/Tests/RunCMake/SymlinkTrees/different-separate-exe-build-stdout.txt
new file mode 100644
index 0000000..e598725
--- /dev/null
+++ b/Tests/RunCMake/SymlinkTrees/different-separate-exe-build-stdout.txt
@@ -0,0 +1,4 @@
+source.c: '[^']*/Tests/RunCMake/SymlinkTrees/different/source/source.c'
+source.h: '[^']*/Tests/RunCMake/SymlinkTrees/different/source/include/source.h'
+binary.c: '[^']*/Tests/RunCMake/SymlinkTrees/different/binary/binary.c'
+binary.h: '[^']*/Tests/RunCMake/SymlinkTrees/different/binary/include/binary.h'
diff --git a/Tests/RunCMake/SymlinkTrees/different-separate-stdout.txt b/Tests/RunCMake/SymlinkTrees/different-separate-stdout.txt
new file mode 100644
index 0000000..fe9c472
--- /dev/null
+++ b/Tests/RunCMake/SymlinkTrees/different-separate-stdout.txt
@@ -0,0 +1,4 @@
+-- source: '[^']*/Tests/RunCMake/SymlinkTrees/different/source'
+-- binary: '[^']*/Tests/RunCMake/SymlinkTrees/different/binary'
+-- real source: '[^']*/Tests/RunCMake/SymlinkTrees/different_src/source_real'
+-- real binary: '[^']*/Tests/RunCMake/SymlinkTrees/different_bin/binary_real'
diff --git a/Tests/RunCMake/SymlinkTrees/different-src_in_bin-exe-build-stdout.txt b/Tests/RunCMake/SymlinkTrees/different-src_in_bin-exe-build-stdout.txt
new file mode 100644
index 0000000..a5a2111
--- /dev/null
+++ b/Tests/RunCMake/SymlinkTrees/different-src_in_bin-exe-build-stdout.txt
@@ -0,0 +1,4 @@
+source.c: '[^']*/Tests/RunCMake/SymlinkTrees/different/binary/source/source.c'
+source.h: '[^']*/Tests/RunCMake/SymlinkTrees/different/binary/source/include/source.h'
+binary.c: '[^']*/Tests/RunCMake/SymlinkTrees/different/binary/binary.c'
+binary.h: '[^']*/Tests/RunCMake/SymlinkTrees/different/binary/include/binary.h'
diff --git a/Tests/RunCMake/SymlinkTrees/different-src_in_bin-stdout.txt b/Tests/RunCMake/SymlinkTrees/different-src_in_bin-stdout.txt
new file mode 100644
index 0000000..248e820
--- /dev/null
+++ b/Tests/RunCMake/SymlinkTrees/different-src_in_bin-stdout.txt
@@ -0,0 +1,4 @@
+-- source: '[^']*/Tests/RunCMake/SymlinkTrees/different/binary/source'
+-- binary: '[^']*/Tests/RunCMake/SymlinkTrees/different/binary'
+-- real source: '[^']*/Tests/RunCMake/SymlinkTrees/different_src/source_real'
+-- real binary: '[^']*/Tests/RunCMake/SymlinkTrees/different_bin/binary_real'
diff --git a/Tests/RunCMake/SymlinkTrees/none-bin_in_src-exe-build-stdout.txt b/Tests/RunCMake/SymlinkTrees/none-bin_in_src-exe-build-stdout.txt
new file mode 100644
index 0000000..520d8a8
--- /dev/null
+++ b/Tests/RunCMake/SymlinkTrees/none-bin_in_src-exe-build-stdout.txt
@@ -0,0 +1,4 @@
+source.c: '[^']*/Tests/RunCMake/SymlinkTrees/none/source/source.c'
+source.h: '[^']*/Tests/RunCMake/SymlinkTrees/none/source/include/source.h'
+binary.c: '[^']*/Tests/RunCMake/SymlinkTrees/none/source/binary/binary.c'
+binary.h: '[^']*/Tests/RunCMake/SymlinkTrees/none/source/binary/include/binary.h'
diff --git a/Tests/RunCMake/SymlinkTrees/none-bin_in_src-stdout.txt b/Tests/RunCMake/SymlinkTrees/none-bin_in_src-stdout.txt
new file mode 100644
index 0000000..6d6af52
--- /dev/null
+++ b/Tests/RunCMake/SymlinkTrees/none-bin_in_src-stdout.txt
@@ -0,0 +1,4 @@
+-- source: '[^']*/Tests/RunCMake/SymlinkTrees/none/source'
+-- binary: '[^']*/Tests/RunCMake/SymlinkTrees/none/source/binary'
+-- real source: '[^']*/Tests/RunCMake/SymlinkTrees/none/source'
+-- real binary: '[^']*/Tests/RunCMake/SymlinkTrees/none/source/binary'
diff --git a/Tests/RunCMake/SymlinkTrees/none-separate-exe-build-stdout.txt b/Tests/RunCMake/SymlinkTrees/none-separate-exe-build-stdout.txt
new file mode 100644
index 0000000..90791d4
--- /dev/null
+++ b/Tests/RunCMake/SymlinkTrees/none-separate-exe-build-stdout.txt
@@ -0,0 +1,4 @@
+source.c: '[^']*/Tests/RunCMake/SymlinkTrees/none/source/source.c'
+source.h: '[^']*/Tests/RunCMake/SymlinkTrees/none/source/include/source.h'
+binary.c: '[^']*/Tests/RunCMake/SymlinkTrees/none/binary/binary.c'
+binary.h: '[^']*/Tests/RunCMake/SymlinkTrees/none/binary/include/binary.h'
diff --git a/Tests/RunCMake/SymlinkTrees/none-separate-stdout.txt b/Tests/RunCMake/SymlinkTrees/none-separate-stdout.txt
new file mode 100644
index 0000000..2251ac5
--- /dev/null
+++ b/Tests/RunCMake/SymlinkTrees/none-separate-stdout.txt
@@ -0,0 +1,4 @@
+-- source: '[^']*/Tests/RunCMake/SymlinkTrees/none/source'
+-- binary: '[^']*/Tests/RunCMake/SymlinkTrees/none/binary'
+-- real source: '[^']*/Tests/RunCMake/SymlinkTrees/none/source'
+-- real binary: '[^']*/Tests/RunCMake/SymlinkTrees/none/binary'
diff --git a/Tests/RunCMake/SymlinkTrees/none-src_in_bin-exe-build-stdout.txt b/Tests/RunCMake/SymlinkTrees/none-src_in_bin-exe-build-stdout.txt
new file mode 100644
index 0000000..07aed79
--- /dev/null
+++ b/Tests/RunCMake/SymlinkTrees/none-src_in_bin-exe-build-stdout.txt
@@ -0,0 +1,4 @@
+source.c: '[^']*/Tests/RunCMake/SymlinkTrees/none/binary/source/source.c'
+source.h: '[^']*/Tests/RunCMake/SymlinkTrees/none/binary/source/include/source.h'
+binary.c: '[^']*/Tests/RunCMake/SymlinkTrees/none/binary/binary.c'
+binary.h: '[^']*/Tests/RunCMake/SymlinkTrees/none/binary/include/binary.h'
diff --git a/Tests/RunCMake/SymlinkTrees/none-src_in_bin-stdout.txt b/Tests/RunCMake/SymlinkTrees/none-src_in_bin-stdout.txt
new file mode 100644
index 0000000..731d62a
--- /dev/null
+++ b/Tests/RunCMake/SymlinkTrees/none-src_in_bin-stdout.txt
@@ -0,0 +1,4 @@
+-- source: '[^']*/Tests/RunCMake/SymlinkTrees/none/binary/source'
+-- binary: '[^']*/Tests/RunCMake/SymlinkTrees/none/binary'
+-- real source: '[^']*/Tests/RunCMake/SymlinkTrees/none/binary/source'
+-- real binary: '[^']*/Tests/RunCMake/SymlinkTrees/none/binary'