diff options
author | Marius Bakke <marius@gnu.org> | 2020-12-21 23:44:54 +0100 |
---|---|---|
committer | Marius Bakke <marius@gnu.org> | 2020-12-21 23:44:54 +0100 |
commit | 119fd58922b00d43d4f8b055f3f622478a13f46d (patch) | |
tree | 4869f9f09079d5a33f7dfd51ca8e52200fbeb09f /tests/gexp.scm | |
parent | 85ba5e9335207beef9a650e96d5d64787beb9256 (diff) | |
parent | bbe4ed65ed5fe7dc8ed9d226042852387cee3b1e (diff) | |
download | guix-patches-119fd58922b00d43d4f8b055f3f622478a13f46d.tar guix-patches-119fd58922b00d43d4f8b055f3f622478a13f46d.tar.gz |
Merge branch 'ungrafting' into staging
Diffstat (limited to 'tests/gexp.scm')
-rw-r--r-- | tests/gexp.scm | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/tests/gexp.scm b/tests/gexp.scm index 686334af61..6e92f0e4b3 100644 --- a/tests/gexp.scm +++ b/tests/gexp.scm @@ -723,10 +723,26 @@ (lambda (port) (display "This is the second one." port)))))) (build-drv #~(begin - (use-modules (guix build store-copy)) + (use-modules (guix build store-copy) + (guix build utils) + (srfi srfi-1)) + + (define (canonical-file? file) + ;; Copied from (guix tests). + (let ((st (lstat file))) + (or (not (string-prefix? (%store-directory) file)) + (eq? 'symlink (stat:type st)) + (and (= 1 (stat:mtime st)) + (zero? (logand #o222 (stat:mode st))))))) (mkdir #$output) - (populate-store '("graph") #$output)))) + (populate-store '("graph") #$output + #:deduplicate? #f) + + ;; Check whether 'populate-store' canonicalizes + ;; permissions and timestamps. + (unless (every canonical-file? (find-files #$output)) + (error "not canonical!" #$output))))) (mlet* %store-monad ((one (gexp->derivation "one" build-one)) (two (gexp->derivation "two" (build-two one))) (drv (gexp->derivation "store-copy" build-drv |