summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomas Volf <~@wolfsden.cz>2024-08-10 00:54:29 +0200
committerLudovic Courtès <ludo@gnu.org>2024-10-20 21:22:22 +0200
commit21e3e1c420ace116961ecdf0001c289c28fa73c6 (patch)
tree590fbcf274b1c1bb52a0f84a21ed5567a141db18
parent478f139d77649cb50b9fa5492b085b42a48dd811 (diff)
downloadguile-21e3e1c420ace116961ecdf0001c289c28fa73c6.tar.gz
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>
-rw-r--r--test-suite/tests/ports.test12
1 files changed, 12 insertions, 0 deletions
diff --git a/test-suite/tests/ports.test b/test-suite/tests/ports.test
index 7b5b535e7..bec5e356c 100644
--- a/test-suite/tests/ports.test
+++ b/test-suite/tests/ports.test
@@ -39,6 +39,10 @@
(define (test-file)
(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.
@@ -185,6 +189,7 @@
(close-port iport))
(delete-file filename))
+;;; Note: Holes are weird on Darwin.
(let* ((file (test-file))
(port (open-output-file file)))
(seek port 4096 SEEK_SET)
@@ -193,10 +198,15 @@
(pass-if-equal "size of sparse file"
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)))
(pass-if-equal "SEEK_DATA while on data"
4096
+ (skip-on-darwin)
(if (defined? 'SEEK_DATA)
(call-with-input-file file
(lambda (port)
@@ -209,6 +219,7 @@
(pass-if-equal "SEEK_DATA while in hole"
4096
+ (skip-on-darwin)
(if (defined? 'SEEK_DATA)
(call-with-input-file file
(lambda (port)
@@ -221,6 +232,7 @@
(pass-if-equal "SEEK_HOLE while in hole"
10
+ (skip-on-darwin)
(if (defined? 'SEEK_HOLE)
(call-with-input-file file
(lambda (port)