Quellcode durchsuchen

Teach CTest.UpdateGIT test to fake file timestamp

We wrap the git executable in a shell script that touches one source
file after 'git pull'.  This makes the file newer than the index even
though it has not actually changed.  If CTest does not refresh the index
properly then the test will fail with a bogus modified file.
Brad King vor 16 Jahren
Ursprung
Commit
6e7e71e9b9
2 geänderte Dateien mit 12 neuen und 0 gelöschten Zeilen
  1. 6 0
      Tests/CTestUpdateGIT.cmake.in
  2. 6 0
      Tests/CTestUpdateGIT.sh.in

+ 6 - 0
Tests/CTestUpdateGIT.cmake.in

@@ -25,6 +25,12 @@ set(AUTHOR_CONFIG "[user]
 message("Creating test directory...")
 init_testing()
 
+if(UNIX)
+  set(src "@CMAKE_CURRENT_SOURCE_DIR@")
+  configure_file(${src}/CTestUpdateGIT.sh.in ${TOP}/git.sh @ONLY)
+  set(GIT ${TOP}/git.sh)
+endif()
+
 #-----------------------------------------------------------------------------
 # Create the repository.
 message("Creating repository...")

+ 6 - 0
Tests/CTestUpdateGIT.sh.in

@@ -0,0 +1,6 @@
+#!/bin/sh
+if test "x$1" = "xpull"; then
+    "@GIT@" "$@" && sleep 1 && touch foo.txt
+else
+    exec "@GIT@" "$@"
+fi