summaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2013-01-30 19:44:49 (GMT)
committerBrad King <brad.king@kitware.com>2013-01-30 19:55:12 (GMT)
commite2e0d2e3c7108d5ce41f032ad9089155c6b4735c (patch)
tree35f65eec3eb7fa5c739f19cee30a44f94e1decb1 /Tests
parentee2abfdc8913e4e9a5bc77c56a9d3dea83fde6f1 (diff)
downloadCMake-e2e0d2e3c7108d5ce41f032ad9089155c6b4735c.zip
CMake-e2e0d2e3c7108d5ce41f032ad9089155c6b4735c.tar.gz
CMake-e2e0d2e3c7108d5ce41f032ad9089155c6b4735c.tar.bz2
ExternalData: Collapse ../ components in DATA{} paths
Relative path components need to be normalized out even if they appear in the middle of a caller-supplied string.
Diffstat (limited to 'Tests')
-rw-r--r--Tests/Module/ExternalData/Data2/CMakeLists.txt1
-rw-r--r--Tests/Module/ExternalData/Data2/Data2Check.cmake9
-rw-r--r--Tests/Module/ExternalData/Data2b.dat.md51
-rw-r--r--Tests/RunCMake/ExternalData/SubDirectory1-stdout.txt3
-rw-r--r--Tests/RunCMake/ExternalData/SubDirectory1/CMakeLists.txt12
5 files changed, 21 insertions, 5 deletions
diff --git a/Tests/Module/ExternalData/Data2/CMakeLists.txt b/Tests/Module/ExternalData/Data2/CMakeLists.txt
index e6d8767..c5b79ac 100644
--- a/Tests/Module/ExternalData/Data2/CMakeLists.txt
+++ b/Tests/Module/ExternalData/Data2/CMakeLists.txt
@@ -4,6 +4,7 @@ ExternalData_Add_Test(Data2
NAME Data2Check
COMMAND ${CMAKE_COMMAND}
-D Data2=DATA{../Data2.dat}
+ -D Data2b=DATA{${CMAKE_CURRENT_SOURCE_DIR}/../Data2b.dat}
-D SeriesC=DATA{SeriesC_1_.my.dat,:}
-P ${CMAKE_CURRENT_SOURCE_DIR}/Data2Check.cmake
)
diff --git a/Tests/Module/ExternalData/Data2/Data2Check.cmake b/Tests/Module/ExternalData/Data2/Data2Check.cmake
index a1dd509..d5b0c7b 100644
--- a/Tests/Module/ExternalData/Data2/Data2Check.cmake
+++ b/Tests/Module/ExternalData/Data2/Data2Check.cmake
@@ -1,6 +1,9 @@
-if(NOT EXISTS "${Data2}")
- message(SEND_ERROR "Input file:\n ${Data2}\ndoes not exist!")
-endif()
+foreach(d "${Data2}" "${Data2b}")
+ file(STRINGS "${d}" lines LIMIT_INPUT 1024)
+ if(NOT "x${lines}" STREQUAL "xInput file already transformed.")
+ message(SEND_ERROR "Input file:\n ${d}\ndoes not have expected content, but [[${lines}]]")
+ endif()
+endforeach()
foreach(n 1 2 3)
string(REGEX REPLACE "_1_\\.my\\.dat$" "_${n}_.my.dat" SeriesCFile "${SeriesC}")
if(NOT EXISTS "${SeriesCFile}")
diff --git a/Tests/Module/ExternalData/Data2b.dat.md5 b/Tests/Module/ExternalData/Data2b.dat.md5
new file mode 100644
index 0000000..70e39bd
--- /dev/null
+++ b/Tests/Module/ExternalData/Data2b.dat.md5
@@ -0,0 +1 @@
+8c018830e3efa5caf3c7415028335a57
diff --git a/Tests/RunCMake/ExternalData/SubDirectory1-stdout.txt b/Tests/RunCMake/ExternalData/SubDirectory1-stdout.txt
index 35a8cc1..03924cb 100644
--- a/Tests/RunCMake/ExternalData/SubDirectory1-stdout.txt
+++ b/Tests/RunCMake/ExternalData/SubDirectory1-stdout.txt
@@ -1,2 +1,3 @@
--- Data reference correctly transformed in parent dir!
+-- Data reference correctly transformed in parent dir 1!
+-- Data reference correctly transformed in parent dir 2!
-- Data reference correctly transformed in current dir!
diff --git a/Tests/RunCMake/ExternalData/SubDirectory1/CMakeLists.txt b/Tests/RunCMake/ExternalData/SubDirectory1/CMakeLists.txt
index 0782460..881ff5c 100644
--- a/Tests/RunCMake/ExternalData/SubDirectory1/CMakeLists.txt
+++ b/Tests/RunCMake/ExternalData/SubDirectory1/CMakeLists.txt
@@ -2,7 +2,17 @@ set(input ../Data.txt)
set(output ${CMAKE_BINARY_DIR}/Data.txt)
ExternalData_Expand_Arguments(Data args DATA{${input}})
if("x${args}" STREQUAL "x${output}")
- message(STATUS "Data reference correctly transformed in parent dir!")
+ message(STATUS "Data reference correctly transformed in parent dir 1!")
+else()
+ message(FATAL_ERROR "Data reference transformed to:\n ${args}\n"
+ "but we expected:\n ${output}")
+endif()
+
+set(input ${CMAKE_CURRENT_SOURCE_DIR}/../Data.txt)
+set(output ${CMAKE_BINARY_DIR}/Data.txt)
+ExternalData_Expand_Arguments(Data args DATA{${input}})
+if("x${args}" STREQUAL "x${output}")
+ message(STATUS "Data reference correctly transformed in parent dir 2!")
else()
message(FATAL_ERROR "Data reference transformed to:\n ${args}\n"
"but we expected:\n ${output}")