From c17b5ab4db140f142f38cdc99468e63e66c91912 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 4 Jun 2014 17:26:54 +0200 Subject: 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. --- guix/gexp.scm | 4 ++++ tests/gexp.scm | 8 ++++++++ 2 files changed, 12 insertions(+) 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 -- cgit v1.2.3