diff options
author | Marius Bakke <[email protected]> | 2020-12-21 23:42:10 +0100 |
---|---|---|
committer | Marius Bakke <[email protected]> | 2020-12-21 23:42:10 +0100 |
commit | bbe4ed65ed5fe7dc8ed9d226042852387cee3b1e (patch) | |
tree | 9fbf0642fe71d0d4f6d7cb4e85b4d1587c8b9b16 /tests/nar.scm | |
parent | 034cfbd2449387c15823cd9ec3e91661f9e5bf49 (diff) | |
parent | f00e68ace070fd5240a4b5874e61c26f6e909b6c (diff) |
Merge branch 'master' into ungrafting
Diffstat (limited to 'tests/nar.scm')
-rw-r--r-- | tests/nar.scm | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/tests/nar.scm b/tests/nar.scm index aeff3d3330..ba4881caaa 100644 --- a/tests/nar.scm +++ b/tests/nar.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <[email protected]> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <[email protected]> ;;; ;;; This file is part of GNU Guix. ;;; @@ -136,8 +136,11 @@ (define (rm-rf dir) (file-system-fold (const #t) ; enter? (lambda (file stat result) ; leaf + (unless (eq? 'symlink (stat:type stat)) + (chmod file #o644)) (delete-file file)) - (const #t) ; down + (lambda (dir stat result) ; down + (chmod dir #o755)) (lambda (dir stat result) ; up (rmdir dir)) (const #t) ; skip @@ -218,8 +221,10 @@ '(("R" directory #f) ("R/dir" directory #f) ("R/dir/exe" executable "1234") + ("R/dir" directory-complete #f) ("R/foo" regular "abcdefg") - ("R/lnk" symlink "foo")) + ("R/lnk" symlink "foo") + ("R" directory-complete #f)) (let () (define-values (port get-bytevector) @@ -361,7 +366,12 @@ (cut write-file input <>)) (call-with-input-file nar (cut restore-file <> output)) - (file-tree-equal? input output)) + + (and (file-tree-equal? input output) + (every (lambda (file) + (canonical-file? + (string-append output "/" file))) + '("root" "root/reg" "root/exe")))) (lambda () (false-if-exception (delete-file nar)) (false-if-exception (rm-rf output))))))) @@ -442,6 +452,9 @@ (false-if-exception (rm-rf %test-dir)) (setlocale LC_ALL locale))))) +;; XXX: Tell the 'deduplicate' procedure what store we're actually using. +(setenv "NIX_STORE" (%store-prefix)) + (test-assert "restore-file-set (signed, valid)" (with-store store (let* ((texts (unfold (cut >= <> 10) |