summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2022-12-20 10:35:37 +0100
committerLudovic Courtès <ludo@gnu.org>2022-12-20 16:56:03 +0100
commit2880dc3046170e9129437caca586f13956d0d811 (patch)
tree6e44b35100bc3279d0ad9491fa545758181ee104
parent3f6c5c6f781bdf4cf5f15272642d0f3aba01aa50 (diff)
downloadguix-2880dc3046170e9129437caca586f13956d0d811.tar.gz
cpio: Skip test on inode numbers that don't fit on 32 bits.
Fixes <https://issues.guix.gnu.org/60202>.
Reported by Christopher Baines <mail@cbaines.net>.

* tests/cpio.scm (%test-file): New variable.
("file->cpio-header + write-cpio-header + read-cpio-header"): Use it.
Skip test when the inode number of %TEST-FILE is too big.
-rw-r--r--tests/cpio.scm12
1 files changed, 9 insertions, 3 deletions
diff --git a/tests/cpio.scm b/tests/cpio.scm
index 516de0655b..832101d1bb 100644
--- a/tests/cpio.scm
+++ b/tests/cpio.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2022 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -31,12 +31,18 @@
 (define %cpio-program
   (which "cpio"))
 
+(define %test-file
+  (search-path %load-path "guix.scm"))
+
 
 (test-begin "cpio")
 
+;; The cpio format expects 'ino' to fit in 32 bits.  If we have a bigger inode
+;; number, skip this test.
+(test-skip
+ (if (>= (stat:ino (lstat %test-file)) (expt 2 32)) 1 0))
 (test-assert "file->cpio-header + write-cpio-header + read-cpio-header"
-  (let* ((file   (search-path %load-path "guix.scm"))
-         (header (file->cpio-header file)))
+  (let* ((header (file->cpio-header %test-file)))
     (call-with-values
         (lambda ()
           (open-bytevector-output-port))