diff options
author | Ludovic Courtès <ludo@gnu.org> | 2014-06-04 17:26:54 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2014-06-04 18:15:50 +0200 |
commit | c17b5ab4db140f142f38cdc99468e63e66c91912 (patch) | |
tree | 1388155a22ec171872229350f5423dd2f208ebf4 | |
parent | d3bbe992ec33860aedccb26734a7a83d263e7ec3 (diff) | |
download | guix-c17b5ab4db140f142f38cdc99468e63e66c91912.tar guix-c17b5ab4db140f142f38cdc99468e63e66c91912.tar.gz |
tests: Skip tests that would hit the shebang length limitation.
* tests/gexp.scm (shebang): New variable.
Skip "gexp->script" when SHEBANG is longer than 127 chars.
* guix/gexp.scm (gexp->script): Add comment on the issue.
-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 |