asdf test failure in 3.3.4 with ecl 20.4.24
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ASDF |
New
|
Undecided
|
Unassigned |
Bug Description
A very strange reader error is tripped running the asdf tests on mac os + ecl 20.4.24 + latest 7/28/2020 asdf git.
A change to an earlier run test can make it pass:
diff --git a/test/
index bd318863..659c3c4c 100644
--- a/test/
+++ b/test/
@@ -228,7 +228,7 @@
(signals error (run-program nil :output :lines))
(DBG "Test that run-program fails properly when the executable doesn't exist.")
- (signals error (run-program '("does-not-exist") :output :lines))
+ (signals error (run-program '("does-not-exist") :output :lines :force-shell t))
(signals error (run-program "does-not-exist" :output :lines))
(assert-equal '(nil nil 0) (multiple-
There is code in the run-program implementation hinting at old ecl bugs that are worked around by effectively making :force-shell t the default. Perhaps these old bugs have come back?
I'd post this to your gitlab, but it would seem theres some sort of problem with registering on gitlab.
Below is the failure output:
PWD=/Users/
OLDPWD=
ecl -norc -load sys:cmp -eval "(or\`,
;;; Loading #P"/usr/
;;; Loading "/Users/
;;; Loading "/Users/
Reusing previously-compiled ASDF
Compiled OK
Testing: test-run-
ecl -norc -load sys:cmp -eval "'(#.(load(
;;; Loading #P"/usr/
;;; Loading "/Users/
;;; Loading "/Users/
Configuring ASDF
Enabling debugging
Being a bit verbose
Comparing directories
ASDF-TEST:
(:PATHNAME-
#P"/Users/
Frob packages
Running test-run-
Testing echo ok 1 via run-program as a list
Testing echo ok 1 via run-program as a string
Testing true via run-shell-command
;;; Warning: DEPRECATED-
The docstring for this function says:
PLEASE DO NOT USE. This function is not just DEPRECATED, but also dysfunctional.
Please use UIOP:RUN-PROGRAM instead.
Testing false via run-shell-command
Testing bad shell command via run-shell-command
Testing good shell command in current directory via run-shell-command
Testing exit status with :output :interactive
aaa
ASDF-TEST::O => "foo"
ASDF-TEST::E => "bar baz"
ASDF-TEST::C => 42
Testing awkward legacy output capture via run-shell-command
Can we echo a simple string?
Are spaces handled properly?
Test that run-program fails properly with an empty program string
An empty string itself is ok since it is passed to the shell.
Test that run-program fails properly with a nil program list
Test that run-program fails properly when the executable doesn't exist.
Checking whether (RUN-PROGRAM '("does-not-exist")
Received signal #<a UIOP/RUN-
Checking whether (RUN-PROGRAM "does-not-exist" :OUTPUT :LINES) signals ERROR
Received signal #<a UIOP/RUN-
Checking that spaces between arguments are collapsed by shell when and only when unquoted
Checking behavior on program success or failure
Checking whether (RUN-PROGRAM "false") signals SUBPROCESS-ERROR
Received signal #<a UIOP/RUN-
Tests with test-file
Checking whether (RUN-PROGRAM '("false") :OUTPUT :LINES) signals SUBPROCESS-ERROR
Received signal #<a UIOP/RUN-
Checking whether (NULL
TEST ABORTED: Reader error in file #<input stream #P"/Users/
Unmatched right parenthesis, #\)
Backtrace:
0: (#:G2546 NIL)
1: (UIOP/STREAM:
2: (UIOP/IMAGE:
3: (UIOP/IMAGE:
4: (#<bytecompiled
5: (#<bytecompiled
6: (#<bytecompiled
7: (#<bytecompiled
8: (#<bytecompiled
9: (#<bytecompiled
10: (#<bytecompiled
11: (#<bytecompiled
12: (NIL NIL)
Above backtrace due to this condition:
Reader error in file #<input stream #P"/Users/
Unmatched right parenthesis, #\)
Script failed
Using ecl, test-run-
you can retry compilation with:
./test/run-tests.sh ecl test-run-
or more interactively (and maybe with rlwrap or in emacs), start with:
(cd test ; ecl -norc -load sys:cmp )
then copy/paste:
'(#.(load "script-
-#-----
Using ecl
Ran 1 tests:
0 passing and 1 failing
failing test(s): test-run-
-#-----
To view full results and failures, try the following command:
less -p ABORTED build/results/
I'd like to add that there is no syntax error in the lisp file. The reader error and how :force-shell t fixes it is completely unexplainable to me.