فهرست منبع

Tests: Use real directory in TestsWorkingDirectory

Kyle Edwards 2 سال پیش
والد
کامیت
495d0da36b
2فایلهای تغییر یافته به همراه16 افزوده شده و 12 حذف شده
  1. 8 6
      Tests/TestsWorkingDirectory/CMakeLists.txt
  2. 8 6
      Tests/TestsWorkingDirectory/subdir/CMakeLists.txt

+ 8 - 6
Tests/TestsWorkingDirectory/CMakeLists.txt

@@ -7,30 +7,32 @@ enable_testing()
 
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}/bin")
 
-add_test(NAME WorkingDirectory0 COMMAND WorkingDirectory "${CMAKE_BINARY_DIR}")
+file(REAL_PATH "${CMAKE_BINARY_DIR}" _real_binary_dir)
 
-add_test(NAME WorkingDirectory1 COMMAND WorkingDirectory "${CMAKE_BINARY_DIR}")
+add_test(NAME WorkingDirectory0 COMMAND WorkingDirectory "${_real_binary_dir}")
+
+add_test(NAME WorkingDirectory1 COMMAND WorkingDirectory "${_real_binary_dir}")
 set_tests_properties(WorkingDirectory1 PROPERTIES
   WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
 )
 
-string(REGEX REPLACE "/[^/]*$" "" _parent_dir "${CMAKE_BINARY_DIR}")
+string(REGEX REPLACE "/[^/]*$" "" _parent_dir "${_real_binary_dir}")
 
 add_test(NAME WorkingDirectory2 COMMAND WorkingDirectory "${_parent_dir}")
 set_tests_properties(WorkingDirectory2 PROPERTIES
   WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/.."
 )
 
-set(_default_cwd "${CMAKE_BINARY_DIR}")
+set(_default_cwd "${_real_binary_dir}")
 
 # FIXME: How to deal with /debug, /release, etc. with VS or Xcode?
 if(${CMAKE_GENERATOR} MATCHES "Makefiles")
 add_test(WorkingDirectory3 ${EXECUTABLE_OUTPUT_PATH}/WorkingDirectory ${_default_cwd})
 endif()
 
-add_test(NAME WorkingDirectory4 WORKING_DIRECTORY ${CMAKE_BINARY_DIR} COMMAND WorkingDirectory ${CMAKE_BINARY_DIR})
+add_test(NAME WorkingDirectory4 WORKING_DIRECTORY ${CMAKE_BINARY_DIR} COMMAND WorkingDirectory ${_real_binary_dir})
 
-string(REGEX REPLACE "/[^/]*$" "" _parent_dir "${CMAKE_BINARY_DIR}")
+string(REGEX REPLACE "/[^/]*$" "" _parent_dir "${_real_binary_dir}")
 
 add_test(NAME WorkingDirectory5 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/.. COMMAND WorkingDirectory ${_parent_dir})
 

+ 8 - 6
Tests/TestsWorkingDirectory/subdir/CMakeLists.txt

@@ -1,27 +1,29 @@
-add_test(NAME WorkingDirectory-Subdir0 COMMAND WorkingDirectory "${CMAKE_CURRENT_BINARY_DIR}")
+file(REAL_PATH "${CMAKE_CURRENT_BINARY_DIR}" _real_current_binary_dir)
 
-add_test(NAME WorkingDirectory-Subdir1 COMMAND WorkingDirectory "${CMAKE_CURRENT_BINARY_DIR}")
+add_test(NAME WorkingDirectory-Subdir0 COMMAND WorkingDirectory "${_real_current_binary_dir}")
+
+add_test(NAME WorkingDirectory-Subdir1 COMMAND WorkingDirectory "${_real_current_binary_dir}")
 set_tests_properties(WorkingDirectory-Subdir1 PROPERTIES
   WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
 )
 
-string(REGEX REPLACE "/[^/]*$" "" _parent_dir "${CMAKE_CURRENT_BINARY_DIR}")
+string(REGEX REPLACE "/[^/]*$" "" _parent_dir "${_real_current_binary_dir}")
 
 add_test(NAME WorkingDirectory-Subdir2 COMMAND WorkingDirectory "${_parent_dir}")
 set_tests_properties(WorkingDirectory-Subdir2 PROPERTIES
   WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/.."
 )
 
-set(_default_cwd "${CMAKE_CURRENT_BINARY_DIR}")
+set(_default_cwd "${_real_current_binary_dir}")
 
 # FIXME: How to deal with /debug, /release, etc. with VS or Xcode?
 if(${CMAKE_GENERATOR} MATCHES "Makefiles")
 add_test(WorkingDirectory-Subdir3 ${EXECUTABLE_OUTPUT_PATH}/WorkingDirectory ${_default_cwd})
 endif()
 
-add_test(NAME WorkingDirectory-Subdir4 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND WorkingDirectory ${CMAKE_CURRENT_BINARY_DIR})
+add_test(NAME WorkingDirectory-Subdir4 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND WorkingDirectory ${_real_current_binary_dir})
 
-string(REGEX REPLACE "/[^/]*$" "" _parent_dir "${CMAKE_CURRENT_BINARY_DIR}")
+string(REGEX REPLACE "/[^/]*$" "" _parent_dir "${_real_current_binary_dir}")
 
 add_test(NAME WorkingDirectory-Subdir5 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/.. COMMAND WorkingDirectory ${_parent_dir})