mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +02:00
tests: Skip hole-related port tests on Darwin.
Hole are itself a file-system specific feature and they are not mandated. While APFS does support sparse files, they do not behave like on Linux. I did not discover exact rules, but the file needs to be large (100s of kB at least) and the holes are not aligned as the test code expects. So just disable them. * test-suite/tests/ports.test (skip-on-darwin): New procedure. ("size of sparse file", "SEEK_DATA while on data") ("SEEK_DATA while in hole", "SEEK_HOLE while in hole"): Skip on Darwin. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
478f139d77
commit
21e3e1c420
1 changed files with 12 additions and 0 deletions
|
@ -39,6 +39,10 @@
|
||||||
(define (test-file)
|
(define (test-file)
|
||||||
(data-file-name "ports-test.tmp"))
|
(data-file-name "ports-test.tmp"))
|
||||||
|
|
||||||
|
(define (skip-on-darwin)
|
||||||
|
(when (string-ci=? "darwin" (utsname:sysname (uname)))
|
||||||
|
(throw 'untested)))
|
||||||
|
|
||||||
|
|
||||||
;;;; Some general utilities for testing ports.
|
;;;; Some general utilities for testing ports.
|
||||||
|
|
||||||
|
@ -185,6 +189,7 @@
|
||||||
(close-port iport))
|
(close-port iport))
|
||||||
(delete-file filename))
|
(delete-file filename))
|
||||||
|
|
||||||
|
;;; Note: Holes are weird on Darwin.
|
||||||
(let* ((file (test-file))
|
(let* ((file (test-file))
|
||||||
(port (open-output-file file)))
|
(port (open-output-file file)))
|
||||||
(seek port 4096 SEEK_SET)
|
(seek port 4096 SEEK_SET)
|
||||||
|
@ -193,10 +198,15 @@
|
||||||
|
|
||||||
(pass-if-equal "size of sparse file"
|
(pass-if-equal "size of sparse file"
|
||||||
4100
|
4100
|
||||||
|
;; XXX: On macOS, APFS does support sparse files, they do not behave
|
||||||
|
;; like on Linux. Skip these tests on macOS.
|
||||||
|
(skip-on-darwin)
|
||||||
|
|
||||||
(stat:size (stat file)))
|
(stat:size (stat file)))
|
||||||
|
|
||||||
(pass-if-equal "SEEK_DATA while on data"
|
(pass-if-equal "SEEK_DATA while on data"
|
||||||
4096
|
4096
|
||||||
|
(skip-on-darwin)
|
||||||
(if (defined? 'SEEK_DATA)
|
(if (defined? 'SEEK_DATA)
|
||||||
(call-with-input-file file
|
(call-with-input-file file
|
||||||
(lambda (port)
|
(lambda (port)
|
||||||
|
@ -209,6 +219,7 @@
|
||||||
|
|
||||||
(pass-if-equal "SEEK_DATA while in hole"
|
(pass-if-equal "SEEK_DATA while in hole"
|
||||||
4096
|
4096
|
||||||
|
(skip-on-darwin)
|
||||||
(if (defined? 'SEEK_DATA)
|
(if (defined? 'SEEK_DATA)
|
||||||
(call-with-input-file file
|
(call-with-input-file file
|
||||||
(lambda (port)
|
(lambda (port)
|
||||||
|
@ -221,6 +232,7 @@
|
||||||
|
|
||||||
(pass-if-equal "SEEK_HOLE while in hole"
|
(pass-if-equal "SEEK_HOLE while in hole"
|
||||||
10
|
10
|
||||||
|
(skip-on-darwin)
|
||||||
(if (defined? 'SEEK_HOLE)
|
(if (defined? 'SEEK_HOLE)
|
||||||
(call-with-input-file file
|
(call-with-input-file file
|
||||||
(lambda (port)
|
(lambda (port)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue