From 5659fed3457b657b8b72f0f673430fb463ba7058 Mon Sep 17 00:00:00 2001
From: Francois-Rene Rideau <tunes@google.com>
Date: Thu, 10 Jan 2013 23:26:01 -0500
Subject: [PATCH] Make some time-dependent tests more robusts with touch.

---
 test/test-force.script             | 12 +++++++-----
 test/test-static-and-serial.script | 12 +++++++++---
 test/test1.script                  |  2 +-
 3 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/test/test-force.script b/test/test-force.script
index f77a24871..7f12c5f5e 100644
--- a/test/test-force.script
+++ b/test/test-force.script
@@ -7,17 +7,19 @@
  (asdf:operate 'asdf:load-op 'test-force)
 
   (let* ((file1 (asdf:compile-file-pathname* "file1"))
-         (file1-date (file-write-date file1)))
+         (file1-date (file-write-date file1))
+         (date1 (- file1-date 600))
+         (date2 (- file1-date 300)))
 
     (assert file1)
     (assert file1-date)
 
     ;; unforced, date should stay same
-    (sleep 1)
+    (touch-file "file1.lisp" date1)
+    (touch-file file1 date2)
     (asdf:operate 'asdf:load-op 'test-force)
-    (assert (equal (file-write-date file1) file1-date))
+    (assert (equal (file-write-date file1) date2))
 
     ;; forced, it should be later
-    (sleep 1)
     (asdf:operate 'asdf:load-op 'test-force :force t)
-    (assert (> (file-write-date file1) file1-date))))
+    (assert (>= (file-write-date file1) file1-date))))
diff --git a/test/test-static-and-serial.script b/test/test-static-and-serial.script
index edad6a3ad..a362bcd52 100644
--- a/test/test-static-and-serial.script
+++ b/test/test-static-and-serial.script
@@ -13,12 +13,18 @@
 
  (asdf:operate 'asdf:load-op 'static-and-serial)
  (let* ((file1 (asdf:compile-file-pathname* "file1.lisp"))
-        (file1-date (file-write-date file1)))
+        (file1-date (file-write-date file1))
+        (date1 (- file1-date 600))
+        (date2 (- file1-date 300))
+        (date3 (- file1-date 150)))
+
    (assert file1-date)
    (format t "file: ~S~%date: ~S~%" file1 file1-date)
 
    ;; date should stay same
    (asdf:clear-system 'static-and-serial)
-   (sleep 1)
+   (touch-file "file2.lisp" date1)
+   (touch-file "file1.lisp" date2)
+   (touch-file file1 date3)
    (asdf:operate 'asdf:load-op 'static-and-serial)
-   (assert (equal (file-write-date file1) file1-date))))
+   (assert (equal (file-write-date file1) date3))))
diff --git a/test/test1.script b/test/test1.script
index 8f8dae258..9cdf96e00 100644
--- a/test/test1.script
+++ b/test/test1.script
@@ -6,7 +6,7 @@
  (DBG "loading test1")
  (touch-file "file1.lisp" :offset -600) ;; touch file1.lisp 10 minutes ago.
  (touch-file "file2.lisp" :offset -300) ;; touch file2.lisp 5 minutes ago.
- (asdf:load-system 'test1)
+ (asdf:load-system 'test1 :force t)
  (let* ((file1 (asdf:compile-file-pathname* "file1"))
         (file2 (asdf:compile-file-pathname* "file2"))
         (file1-date (file-write-date file1))
-- 
GitLab