[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#44626: tests/build-utils, tests/guix-system: fail when build path co
From: |
Ludovic Courtès |
Subject: |
bug#44626: tests/build-utils, tests/guix-system: fail when build path contains "~" |
Date: |
Tue, 17 Nov 2020 15:29:55 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) |
Hi Vagrant,
Vagrant Cascadian <vagrant@debian.org> skribis:
> Though may introduce a different issue in tests/build-utils.log:
>
> ...
> test-name: wrap-script, simple case
> location: /build/guix-41NMGX/guix-1.2.0~rc1/tests/build-utils.scm:152
> source:
> + (test-equal
> + "wrap-script, simple case"
> + (string-append
> + (format
> + #f
> + "#!~a --no-auto-compile\n#!#; Guix wrapper\n#\\-~s\n#\\-~s\n"
> + (which "guile")
> + '(begin
> + (let ((current (getenv "GUIX_FOO")))
> + (setenv
> + "GUIX_FOO"
> + (if current
> + (string-append
> + "/some/path:/some/other/path"
> + ":"
> + current)
> + "/some/path:/some/other/path"))))
> + '(let ((cl (command-line)))
> + (apply execl
> + "/anything/cabbage-bash-1.2.3/bin/sh"
> + (car cl)
> + (cons (car cl) (append '("") cl)))))
> + script-contents)
> + (call-with-temporary-directory
> + (lambda (directory)
> + (let ((script-file-name
> + (string-append directory "/foo")))
> + (call-with-output-file
> + script-file-name
> + (lambda (port) (display script-contents port)))
> + (chmod script-file-name 511)
> + (wrap-script
> + script-file-name
> + `("GUIX_FOO"
> + prefix
> + ("/some/path" "/some/other/path")))
> + (let ((str (call-with-input-file
> + script-file-name
> + get-string-all)))
> + (with-directory-excursion
> + directory
> + (delete-file "foo"))
> + str)))))
> FORMAT: INTERNAL ERROR IN FORMAT-ERROR!
> destination: #<input-output:
> /tmp/guix-directory.YrSRbV/foo.3efcPU 8>
> format string: "#!/build/guix-41NMGX/guix-1.2.0~rc1/guile
> --no-auto-compile\n#!#; Guix wrapper\n#\\-(begin (let ((current
> (getenv \"GUIX_FOO\"))) (setenv \"GUIX_FOO\" (if current
> (string-append \"/some/path:/some/other/path\" \":\" current)
> \"/some/path:/some/other/path\"))))\n#\\-(let ((cl
> (command-line))) (apply execl
> \"/anything/cabbage-bash-1.2.3/bin/sh\" (car cl) (cons (car cl)
> (append (quote (\"\")) cl))))\n"
> format args: ()
> error args: (#f "error in format" () #f)
> FORMAT: INTERNAL ERROR IN FORMAT-ERROR!
> destination: #<input-output:
> /tmp/guix-directory.YrSRbV/foo.3efcPU 8>
> format string: "#!/build/guix-41NMGX/guix-1.2.0~rc1/guile
> --no-auto-compile\n#!#; Guix wrapper\n#\\-(begin (let ((current
> (getenv \"GUIX_FOO\"))) (setenv \"GUIX_FOO\" (if current
> (string-append \"/some/path:/some/other/path\" \":\" current)
> \"/some/path:/some/other/path\"))))\n#\\-(let ((cl
> (command-line))) (apply execl
> \"/anything/cabbage-bash-1.2.3/bin/sh\" (car cl) (cons (car cl)
> (append (quote (\"\")) cl))))\n"
> format args: ()
> error args: (#<&wrap-error program:
> "/tmp/guix-directory.YrSRbV/foo" type: misc-error>)
> expected-value: "#!/build/guix-41NMGX/guix-1.2.0~rc1/guile
> --no-auto-compile\n#!#; Guix wrapper\n#\\-(begin (let ((current (getenv
> \"GUIX_FOO\"))) (setenv \"GUIX_FOO\" (if current (string-append
> \"/some/path:/some/other/path\" \":\" current)
> \"/some/path:/some/other/path\"))))\n#\\-(let ((cl (command-line)))
> (apply execl \"/anything/cabbage-bash-1.2.3/bin/sh\" (car cl) (cons (car
> cl) (append (quote (\"\"))
> cl))))\n#!/anything/cabbage-bash-1.2.3/bin/sh\n\necho hello world"
> actual-value: #f
> actual-error:
> + (%exception
> + #<&wrap-error program: "/tmp/guix-directory.YrSRbV/foo" type:
> misc-error>)
> result: FAIL
Turns out ‘wrap-script’ itself passes a non-literal string to ‘format’,
hence this error. I’m fixing this in ‘core-updates’ since it’s a
full-rebuild change: commit 55fb5e5d2113a732a03e255371f0172800483023.
Thanks,
Ludo’.