guix-commits
[Top][All Lists]
Advanced

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

branch main updated: tests: Give instances of ‘guix-daemon’ and ‘cuirass


From: Ludovic Courtès
Subject: branch main updated: tests: Give instances of ‘guix-daemon’ and ‘cuirass register’ unique files.
Date: Tue, 16 Jul 2024 10:56:55 -0400

This is an automated email from the git hooks/post-receive script.

civodul pushed a commit to branch main
in repository guix-cuirass.

The following commit(s) were added to refs/heads/main by this push:
     new 66e1d38  tests: Give instances of ‘guix-daemon’ and ‘cuirass register’ 
unique files.
66e1d38 is described below

commit 66e1d38ede2e71d857fcb7c0218e15a35a71c344
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Tue Jul 16 16:53:52 2024 +0200

    tests: Give instances of ‘guix-daemon’ and ‘cuirass register’ unique files.
    
    This is a followup to 331c67ab46b41fd7d19007b23fa9f0b0a06408aa.
    
    Previously, running these tests in parallel could result into
    mismatches, where one test would talk to the ‘cuirass register’ or
    ‘guix-daemon’ process of the other test.
    
    * tests/common.scm (%daemon-socket): Rename to…
    (%daemon-socket-stem): … this.
    (start-guix-daemon): Make socket name and state directory a function of
    the PID.
    * tests/http.scm (with-cuirass-register): Likewise.
    * tests/register.scm (start-process): Likewise.
---
 tests/common.scm   | 13 +++++++++----
 tests/http.scm     | 12 ++++++++++--
 tests/register.scm |  9 +++++++++
 3 files changed, 28 insertions(+), 6 deletions(-)

diff --git a/tests/common.scm b/tests/common.scm
index 4b6c549..a807498 100644
--- a/tests/common.scm
+++ b/tests/common.scm
@@ -61,23 +61,28 @@
   (%package-database (pg-tmp))
   (%db (db-open)))
 
-(define %daemon-socket
+(define %daemon-socket-stem
   (in-vicinity (or (getenv "TMPDIR") "/tmp")
                "cuirass-test-daemon-socket"))
 
 (define (start-guix-daemon)
   "Start a custom @command{guix-daemon} and define all the relevant
 environment variables so that Guix clients will take to it."
-  (setenv "GUIX_DAEMON_SOCKET" %daemon-socket)
+  (define socket
+    (string-append %daemon-socket-stem "-"
+                   (number->string (getpid))))
+
+  (setenv "GUIX_DAEMON_SOCKET" socket)
   (setenv "GUIX_STATE_DIRECTORY"
           (in-vicinity (or (getenv "TMPDIR") "/tmp")
-                       "cuirass-test-var"))
+                       (string-append "cuirass-test-var-"
+                                      (number->string (getpid)))))
   (setenv "NIX_STORE"
           (in-vicinity (or (getenv "TMPDIR") "/tmp")
                        "cuirass-test-store"))
   (spawn "guix-daemon"
          (list "guix-daemon" "--disable-chroot"
-               (string-append "--listen=" %daemon-socket))))
+               (string-append "--listen=" socket))))
 
 (define-syntax-rule (with-guix-daemon exp ...)
   "Evaluate @var{exp}... in a context where a test instance of
diff --git a/tests/http.scm b/tests/http.scm
index bcc420e..bdd2b7d 100644
--- a/tests/http.scm
+++ b/tests/http.scm
@@ -19,7 +19,8 @@
 ;;; You should have received a copy of the GNU General Public License
 ;;; along with Cuirass.  If not, see <http://www.gnu.org/licenses/>.
 
-(use-modules (cuirass http)
+(use-modules ((cuirass base) #:select (%bridge-socket-file-name))
+             (cuirass http)
              (cuirass database)
              (cuirass gitlab)
              (cuirass specification)
@@ -129,12 +130,19 @@
    (let ((pid #f))
      (dynamic-wind
        (lambda ()
+         (setenv "CUIRASS_RUN_STATE_DIRECTORY"
+                 (in-vicinity (or (getenv "TMPDIR") "/tmp")
+                              (string-append "cuirass-test-run-"
+                                             (number->string (getpid)))))
          (set! pid (spawn "cuirass"
                           (list "cuirass" "register"
                                 (string-append "--database="
                                                (%package-database))))))
        (lambda ()
-         exp ...)
+         (parameterize ((%bridge-socket-file-name
+                         (in-vicinity (getenv "CUIRASS_RUN_STATE_DIRECTORY")
+                                      "cuirass/bridge")))
+           exp ...))
        (lambda ()
          (format (current-error-port)
                  "terminating Cuirass (PID ~a)~%" pid)
diff --git a/tests/register.scm b/tests/register.scm
index 738a2fb..db0c73c 100644
--- a/tests/register.scm
+++ b/tests/register.scm
@@ -26,6 +26,15 @@
 
 (define (start-process)
   (setenv "CUIRASS_LOGGING_LEVEL" "debug")
+  (setenv "CUIRASS_RUN_STATE_DIRECTORY"
+          (in-vicinity (or (getenv "TMPDIR") "/tmp")
+                       (string-append "cuirass-test-run-"
+                                      (number->string (getpid)))))
+
+  (%bridge-socket-file-name
+   (in-vicinity (getenv "CUIRASS_RUN_STATE_DIRECTORY")
+                "cuirass/bridge"))
+
   (spawn "cuirass"
          (list "cuirass" "register"
                "-S" (string-append (getenv "testsrcdir")



reply via email to

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