mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
tests: Check file canonicalization for 'restore-file-set'.
* guix/tests.scm (canonical-file?): New procedure. * tests/nar.scm ("restore-file-set (signed, valid)"): Check that every item of FILES matches 'canonical-file?'.
This commit is contained in:
parent
3ed56ad09b
commit
8390869811
2 changed files with 13 additions and 1 deletions
|
@ -36,6 +36,7 @@
|
|||
random-text
|
||||
random-bytevector
|
||||
file=?
|
||||
canonical-file?
|
||||
network-reachable?
|
||||
shebang-too-long?
|
||||
mock
|
||||
|
@ -150,6 +151,14 @@ too expensive to build entirely in the test store."
|
|||
(else
|
||||
(error "what?" (lstat a))))))
|
||||
|
||||
(define (canonical-file? file)
|
||||
"Return #t if FILE is in the store, is read-only, and its mtime is 1."
|
||||
(let ((st (lstat file)))
|
||||
(or (not (string-prefix? (%store-prefix) file))
|
||||
(eq? 'symlink (stat:type st))
|
||||
(and (= 1 (stat:mtime st))
|
||||
(zero? (logand #o222 (stat:mode st)))))))
|
||||
|
||||
(define (network-reachable?)
|
||||
"Return true if we can reach the Internet."
|
||||
(false-if-exception (getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue