guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

04/06: gnu: guile-lib: Fix tests for Guile 2.2.


From: guix-commits
Subject: 04/06: gnu: guile-lib: Fix tests for Guile 2.2.
Date: Tue, 14 May 2024 07:48:04 -0400 (EDT)

cbaines pushed a commit to branch master
in repository guix.

commit 85923f9eb423652200351a34f195b86c46ecf97b
Author: Artyom V. Poptsov <poptsov.artyom@gmail.com>
AuthorDate: Mon Apr 29 12:04:14 2024 +0300

    gnu: guile-lib: Fix tests for Guile 2.2.
    
    * gnu/packages/guile-xyz.scm (guile-lib)[source]: Add a patch that fixes
    tests for Guile 2.2.
    * gnu/packages/patches/guile-lib-fix-tests-for-guile2.2.patch: New file.
    * gnu/local.mk (dist_patch_DATA): Add
    "guile-lib-fix-tests-for-guile2.2.patch".
    
    Change-Id: Ia340e1de57c56366f0ee9271687a89fb9e41bc2d
    Signed-off-by: Christopher Baines <mail@cbaines.net>
---
 gnu/local.mk                                       |  1 +
 gnu/packages/guile-xyz.scm                         |  3 +-
 .../patches/guile-lib-fix-tests-for-guile2.2.patch | 52 ++++++++++++++++++++++
 3 files changed, 55 insertions(+), 1 deletion(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index bc0fe77e93..e3389731ef 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1418,6 +1418,7 @@ dist_patch_DATA =                                         
\
   %D%/packages/patches/guile-linux-syscalls.patch              \
   %D%/packages/patches/guile-3.0-linux-syscalls.patch          \
   %D%/packages/patches/guile-ac-d-bus-fix-tests.patch          \
+  %D%/packages/patches/guile-lib-fix-tests-for-guile2.2.patch          \
   %D%/packages/patches/guile-fibers-destroy-peer-schedulers.patch \
   %D%/packages/patches/guile-fibers-epoll-instance-is-dead.patch \
   %D%/packages/patches/guile-fibers-fd-finalizer-leak.patch    \
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index aab9a9cbec..da419030a0 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -2765,7 +2765,8 @@ library.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1nb7swbliw9vx1ivhgd2m0r0p7nlkszw6s41zcgfwb5v1kp05sb4"))))
+                "1nb7swbliw9vx1ivhgd2m0r0p7nlkszw6s41zcgfwb5v1kp05sb4"))
+              (patches (search-patches 
"guile-lib-fix-tests-for-guile2.2.patch"))))
     (build-system gnu-build-system)
     (arguments
      '(#:make-flags '("GUILE_AUTO_COMPILE=0") ;placate guild warnings
diff --git a/gnu/packages/patches/guile-lib-fix-tests-for-guile2.2.patch 
b/gnu/packages/patches/guile-lib-fix-tests-for-guile2.2.patch
new file mode 100644
index 0000000000..051e73ed12
--- /dev/null
+++ b/gnu/packages/patches/guile-lib-fix-tests-for-guile2.2.patch
@@ -0,0 +1,52 @@
+From b1916e9a8ac8fa1bdd045d6e1d89e0f16ef7e441 Mon Sep 17 00:00:00 2001
+From: "Artyom V. Poptsov" <poptsov.artyom@gmail.com>
+Date: Mon, 29 Apr 2024 11:27:02 +0300
+Subject: [PATCH] unit-tests/logging.logger: Fix tests with Guile 2
+
+When tests are run with Guile 2 "logging.logger.scm" would always fail
+due to undefined reference to "mkstemp" that was introduced only in
+Guile 3.  In Guile 2 the procedure is called "mkstemp!".  Also
+"call-with-port" procedure is available only from (rnrs io ports) in
+Guile 2, while in Guile 3 this procedure is available out of box.
+This patch fixes these issues by adding an additional runtime check.
+
+* unit-tests/logging.logger.scm (call-with-temporary-file): Bugfix:
+  Check Guile major version and use "mkstemp!" when Guile 2 is used;
+  use "mkstemp" otherwise.  Also for Guile 2 load "call-with-port"
+  from (rnrs io ports).
+---
+ unit-tests/logging.logger.scm | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/unit-tests/logging.logger.scm b/unit-tests/logging.logger.scm
+index c69a86d..fbf4ce7 100644
+--- a/unit-tests/logging.logger.scm
++++ b/unit-tests/logging.logger.scm
+@@ -3,6 +3,7 @@
+ ;;;    Copyright (C) 2003 Richard Todd
+ ;;;    Copyright (C) 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+ ;;;    Copyright (C) 2024 David Pirotte <david@altosw.be>
++;;;    Copyright (C) 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
+ 
+ ;;;    This program is free software; you can redistribute it and/or modify
+ ;;;    it under the terms of the GNU General Public License as published by
+@@ -28,8 +29,12 @@
+ (define* (call-with-temporary-file proc #:key (mode "w+"))
+   "Open a temporary file name and pass it to PROC, a procedure of one
+ argument.  The port is automatically closed."
+-  (let ((port (mkstemp "/tmp/file-XXXXXX" mode)))
+-    (call-with-port port proc)))
++  (let ((file-name "/tmp/file-XXXXXX"))
++    (if (< (string->number (major-version)) 3)
++        (let ((port (mkstemp! (string-copy file-name) mode)))
++          ((@ (rnrs io ports) call-with-port) port proc))
++        (let ((port (mkstemp file-name mode)))
++          (call-with-port port proc)))))
+ 
+ (define-class <test-logging> (<test-case>))
+ 
+
+base-commit: 0e2b6b0ae5cc43c98075386bb4c69defb705f3b3
+-- 
+2.41.0
+



reply via email to

[Prev in Thread] Current Thread [Next in Thread]