guix-devel
[Top][All Lists]
Advanced

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

Re: [PATCH] tests: Use '.' and not 'source' which is a Bashism.


From: Taylan Ulrich Bayırlı/Kammer
Subject: Re: [PATCH] tests: Use '.' and not 'source' which is a Bashism.
Date: Wed, 06 May 2015 22:08:04 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

John Darrington <address@hidden> writes:

> Since we use bash, I don't think it matters if we have constructs
> which don't work on the traditional bourne shell.

This is about building Guix though, which should work on any POSIX
system (approximately at least?) with the dependencies listed in the
README.

By the way it seems that wasn't the only issue in the test.  Here is a
better patch, this time tested on Debian with /bin/sh set to dash:

>From f165e9a91118936e72f7df836446541c093c8329 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Taylan=20Ulrich=20Bay=C4=B1rl=C4=B1/Kammer?=
 <address@hidden>
Date: Wed, 6 May 2015 20:13:31 +0200
Subject: [PATCH] tests: Fix etc/profile test.

* tests/profiles.scm ("etc/profile"): Unset GUIX_PROFILE before sourcing
  etc/profile.  Use '.' instead of 'source' for sourcing, since the latter is
  a Bashism.  Call 'echo $PATH' instead of using the output of 'set' to
  determine whether PATH is set, because the output of 'set' differs between
  shells.
---
 tests/profiles.scm | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/tests/profiles.scm b/tests/profiles.scm
index a397171..6b1a907 100644
--- a/tests/profiles.scm
+++ b/tests/profiles.scm
@@ -237,14 +237,13 @@
     (mbegin %store-monad
       (built-derivations (list drv))
       (let* ((pipe (open-input-pipe
-                    (string-append "source "
-                                   profile "/etc/profile; "
-                                   "unset GUIX_PROFILE; set")))
-             (env  (get-string-all pipe)))
+                    (string-append "unset GUIX_PROFILE; "
+                                   ". " profile "/etc/profile; "
+                                   "echo $PATH")))
+             (path (get-string-all pipe)))
         (return
          (and (zero? (close-pipe pipe))
-              (string-contains env
-                               (string-append "PATH=" profile "/bin"))))))))
+              (string-contains path (string-append profile "/bin"))))))))
 
 (test-end "profiles")
 
-- 
2.2.1


reply via email to

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