diff options
author | Ludovic Courtès <ludo@gnu.org> | 2018-07-20 14:49:34 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2018-07-20 15:01:33 +0200 |
commit | e4752118691e41ae8307649d1abfd4739b3e4bfa (patch) | |
tree | eb1c1d4b794e3e00dad9ce0f10d959d12b870bcd /tests/store-database.scm | |
parent | 4f89a8eec69491b925f084381ea4de37527c9310 (diff) | |
download | guix-e4752118691e41ae8307649d1abfd4739b3e4bfa.tar guix-e4752118691e41ae8307649d1abfd4739b3e4bfa.tar.gz |
database: Reset timestamps to one second after the Epoch.
Previously, store items registered in the database by this code (for
instance, store items retrieved by 'guix offload' and passed to
'restore-file-set') would have an mtime of 0 instead of 1.
This would cause problems for things like .go files: Guile would
consider them to be older than the corresponding .scm file, and
consequently it would ignore them and possibly use another (incorrect)
.go file.
Reported by Ricardo Wurmus.
* guix/store/database.scm (reset-timestamps): Pass 1, not 0, to
'utime'.
* tests/store-database.scm ("register-path"): Check the mtime of FILE
and REF.
Diffstat (limited to 'tests/store-database.scm')
-rw-r--r-- | tests/store-database.scm | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/tests/store-database.scm b/tests/store-database.scm index fcae66e2de..4d91884250 100644 --- a/tests/store-database.scm +++ b/tests/store-database.scm @@ -32,7 +32,8 @@ (test-begin "store-database") -(test-assert "register-path" +(test-equal "register-path" + '(1 1) (let ((file (string-append (%store-prefix) "/" (make-string 32 #\f) "-fake"))) (when (valid-path? %store file) @@ -50,7 +51,9 @@ (and (valid-path? %store file) (equal? (references %store file) (list ref)) (null? (valid-derivers %store file)) - (null? (referrers %store file)))))) + (null? (referrers %store file)) + (list (stat:mtime (lstat file)) + (stat:mtime (lstat ref))))))) (test-equal "new database" (list 1 2) |