瀏覽代碼

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 年之前
父節點
當前提交
6e7e71e9b9
共有 2 個文件被更改,包括 12 次插入0 次删除
  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