Przeglądaj źródła

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 16 lat temu
rodzic
commit
6e7e71e9b9
2 zmienionych plików z 12 dodań i 0 usunięć
  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