diff options
-rw-r--r-- | guix/gexp.scm | 4 | ||||
-rw-r--r-- | tests/gexp.scm | 8 |
2 files changed, 12 insertions, 0 deletions
diff --git a/guix/gexp.scm b/guix/gexp.scm index a2ba50d957..3b154d400f 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -351,6 +351,10 @@ its search path." (gexp (call-with-output-file (ungexp output) (lambda (port) + ;; Note: that makes a long shebang. When the store + ;; is /gnu/store, that fits within the 128-byte + ;; limit imposed by Linux, but that may go beyond + ;; when running tests. (format port "#!~a/bin/guile --no-auto-compile~%!#~%" (ungexp guile)) diff --git a/tests/gexp.scm b/tests/gexp.scm index 21606b510b..60adf497ed 100644 --- a/tests/gexp.scm +++ b/tests/gexp.scm @@ -211,6 +211,14 @@ (return (string=? (readlink (string-append out "/foo")) guile)))) +(define shebang + (string-append (derivation->output-path guile-for-build) + "/bin/guile --no-auto-compile")) + +;; If we're going to hit the silly shebang limit (128 chars on Linux-based +;; systems), then skip the following test. +(test-skip (if (> (string-length shebang) 127) 1 0)) + (test-assertm "gexp->script" (mlet* %store-monad ((n -> (random (expt 2 50))) (exp -> (gexp |