summaryrefslogtreecommitdiff
path: root/guix/tests.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix/tests.scm')
-rw-r--r--guix/tests.scm9
1 files changed, 9 insertions, 0 deletions
diff --git a/guix/tests.scm b/guix/tests.scm
index 66524ddc2f..f4948148c4 100644
--- a/guix/tests.scm
+++ b/guix/tests.scm
@@ -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)))