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.
This commit is contained in:
Ludovic Courtès 2022-12-20 10:35:37 +01:00
parent 3f6c5c6f78
commit 2880dc3046
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; 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. ;;; This file is part of GNU Guix.
;;; ;;;
@ -31,12 +31,18 @@ (define-module (test-cpio)
(define %cpio-program (define %cpio-program
(which "cpio")) (which "cpio"))
(define %test-file
(search-path %load-path "guix.scm"))
(test-begin "cpio") (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" (test-assert "file->cpio-header + write-cpio-header + read-cpio-header"
(let* ((file (search-path %load-path "guix.scm")) (let* ((header (file->cpio-header %test-file)))
(header (file->cpio-header file)))
(call-with-values (call-with-values
(lambda () (lambda ()
(open-bytevector-output-port)) (open-bytevector-output-port))