From e4ae73023b46dbb125e96ea7e22c5429e55becc0 Mon Sep 17 00:00:00 2001 From: Tomas Volf <~@wolfsden.cz> Date: Thu, 8 Aug 2024 18:48:23 +0200 Subject: [PATCH 5/9] tests: Skip mkdtemp test for invalid template on Darwin. Darwin accepts any template, as demonstrated here: #include #include int main(void) { char template[] = {'T', '-', 'A', 'A', 'A', 'A', 'A', 'A', '\0'}; char *res = mkdtemp(template); puts(res ? res : "(null)"); perror("mkdtemp"); } Outputs: T-AAAAAA mkdtemp: Undefined error: 0 This does not match prescribed POSIX behavior, but it is what it is. * test-suite/tests/filesys.test (skip-on-darwin): New procedure. ("mkdtemp")["invalid template"]: Skip on Darwin. --- test-suite/tests/filesys.test | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test-suite/tests/filesys.test b/test-suite/tests/filesys.test index fa8d6f797..72d778145 100644 --- a/test-suite/tests/filesys.test +++ b/test-suite/tests/filesys.test @@ -34,6 +34,9 @@ (define (test-directory2) (data-file-name "filesys-test-dir2.tmp")) +(define (skip-on-darwin) + (when (string-ci=? "darwin" (vector-ref (uname) 0)) + (throw 'untested))) ;;; ;;; copy-file @@ -345,6 +348,8 @@ (= (string-length name) 8))))) (pass-if-exception "invalid template" exception:system-error + ;; MacOS accepts any template and just does no replacements. + (skip-on-darwin) (if (not (defined? 'mkdtemp)) (throw 'unresolved) (mkdtemp "T-AAAAAA"))) -- 2.45.2