I do see the discrepancy between "ok 1" and "ok 1" in the output, not just in the outgoing email. It appears to be an additional space in the first case. Things are getting a bit blurred together in my mind at this point, but I think this is something we have seen before and Fare has some idea what is causing it.
Here is the full output for alisp (which shows up in the Allegro Common Lisp Console and not in the normal build/results/allegro.text output file). Same issue for mlisp, apparently.
; Loading
; C:\users\dcooper8\genworks\cl\tests\asdf\asdf\test\script-support.lisp
; Fast loading
; C:\users\dcooper8\genworks\cl\tests\asdf\asdf\build\fasls\alisp\asdf.fasl
Warning: FIRST-FEATURE is defined more than once as `operator' in file C:\users\dcooper8\genworks\cl\tests\asdf\asdf\build\asdf.lisp.
Warning: IMPLEMENTATION-TYPE is defined more than once as `operator' in file C:\users\dcooper8\genworks\cl\tests\asdf\asdf\build\asdf.lisp.
Warning: *IMPLEMENTATION-TYPE* is defined more than once as `variable' in file C:\users\dcooper8\genworks\cl\tests\asdf\asdf\build\asdf.lisp.
Warning: OPERATING-SYSTEM is defined more than once as `operator' in file C:\users\dcooper8\genworks\cl\tests\asdf\asdf\build\asdf.lisp.
Warning: ARCHITECTURE is defined more than once as `operator' in file C:\users\dcooper8\genworks\cl\tests\asdf\asdf\build\asdf.lisp.
Configuring ASDF
Enabling debugging
Being a bit verbose
Comparing directories
ASDF-TEST:*TEST-DIRECTORY* and ASDF-TEST::X both evaluate to same path:
#P"C:\\users\\dcooper8\\genworks\\cl\\tests\\asdf\\asdf\\test\\"
Frob packages
; Loading
; C:\users\dcooper8\genworks\cl\tests\asdf\asdf\test\test-run-program.script
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
Testing false via run-shell-command
Testing bad shell command via run-shell-command
Testing awkward legacy output capture via run-shell-command
; Autoloading for EXCL::GRAY-OPEN:
; Fast loading from bundle code\streamc.fasl.
; Fast loading from bundle code\efft-1252-base.fasl.
; Fast loading from bundle code\efft-utf8-base.fasl.
; Fast loading from bundle code\efft-void.fasl.
; Fast loading from bundle code\efft-latin1-base.fasl.
; Autoloading for class ECHO-STREAM:
; Fast loading from bundle code\STREAMA.fasl.
TEST ABORTED: These two expressions fail comparison with EQUAL:
"ok 1" evaluates to "ok 1"
(DEWINDOWIZE (RUN-PROGRAM "echo ok 1" :OUTPUT :LINE)) evaluates to "ok 1"
Evaluation stack:
->(TPL::ZOOM-COMMAND :FROM-READ-EVAL-PRINT-LOOP NIL :COUNT T :ALL T)
(SYS::..RUNTIME-OPERATION #19="applyn" . #1=(:UNKNOWN-ARGS))
(TPL:DO-COMMAND
"zoom"
:FROM-READ-EVAL-PRINT-LOOP
NIL
:COUNT
T
:ALL
T)
(ASDF/IMAGE:RAW-PRINT-BACKTRACE
:STREAM
#2=#<EXCL:TERMINAL-SIMPLE-STREAM
[initial terminal io] fd 0/1
@
#x200f95b2>
:COUNT
69)
(SYS::..RUNTIME-OPERATION #3="lisp_apply" . #1#)
((:INTERNAL ASDF/IMAGE:PRINT-BACKTRACE 0))
(ASDF/STREAM:CALL-WITH-SAFE-IO-SYNTAX
#<Closure (:INTERNAL ASDF/IMAGE:PRINT-BACKTRACE 0) @ #x205c4b2a>)
(ASDF/IMAGE:PRINT-BACKTRACE :STREAM #2# :COUNT 69)
(ASDF/IMAGE:PRINT-CONDITION-BACKTRACE
#4=#<SIMPLE-ERROR @ #x205c4c8a>
:STREAM
#2#
:COUNT
69)
(SYS::..RUNTIME-OPERATION #3# . #1#)
[... EXCL::EVAL-AS-PROGN ]
(BLOCK
ASDF-TEST:ACALL
(APPLY
(APPLY
'ASDF-TEST:ASYM
(IF
(CONSP ASDF-TEST::NAME)
ASDF-TEST::NAME
(LIST ASDF-TEST::NAME)))
ASDF-TEST::ARGS))
[... EXCL::%EVAL ]
(ASDF-TEST:ACALL
:PRINT-CONDITION-BACKTRACE
#4#
:COUNT
69
:STREAM
#2#)
(SYS::..RUNTIME-OPERATION
#8="_comp_to_interp"
:PRINT-CONDITION-BACKTRACE
#4#
:COUNT
69
:STREAM
#2#)
(SYS::..RUNTIME-OPERATION #3# . #1#)
[... EXCL::EVAL-AS-PROGN ]
(LET*
. #6=(((#5=#:G246
(CONS
(LOAD-TIME-VALUE EXCL::.IGNORE-ERRORS-1.)
(EXCL::FAST EXCL::*HANDLER-CLUSTERS*)))
(EXCL::*HANDLER-CLUSTERS* #5#))
(DECLARE (DYNAMIC-EXTENT #5# EXCL::*HANDLER-CLUSTERS*))
(PROGN
. #7=((ASDF-TEST:ACALL
:PRINT-CONDITION-BACKTRACE
ASDF-TEST::C
:COUNT
69
:STREAM
*ERROR-OUTPUT*)))))
[... EXCL::EVAL-AS-PROGN ]
(CATCH 'EXCL::IGNORE-ERRORS-1 (LET* . #6#))
[... EXCL::%EVAL ]
(EXCL::EVAL-AS-PROGN
#21=((IGNORE-ERRORS . #7#)
(ASDF-TEST:LEAVE-TEST "Script failed" 1)))
[... EXCL::%EVAL ]
((:INTERNAL ASDF-TEST::CALL-WITH-TEST) #4#)
(SYS::..RUNTIME-OPERATION #8# #4#)
(SIGNAL #4#)
(ERROR
#10="These two expressions fail comparison with ~S:~% ~
~S evaluates to ~S~% ~S evaluates to ~S~%"
EQUAL
#9="ok 1"
#9#
#11=(ASDF-TEST::DEWINDOWIZE
(ASDF/RUN-PROGRAM:RUN-PROGRAM "echo ok 1" :OUTPUT :LINE))
#12="ok 1")
(SYS::..RUNTIME-OPERATION #3# . #1#)
[... EXCL::EVAL-AS-PROGN ]
(BLOCK
ASDF-TEST::ASSERT-COMPARE-HELPER
(UNLESS
(FUNCALL ASDF-TEST::OP ASDF-TEST::X ASDF-TEST::Y)
(ERROR
#10#
ASDF-TEST::OP
ASDF-TEST::QX
ASDF-TEST::X
ASDF-TEST::QY
ASDF-TEST::Y)))
[... EXCL::%EVAL ]
(ASDF-TEST::ASSERT-COMPARE-HELPER EQUAL #9# #11# #9# #12#)
(SYS::..RUNTIME-OPERATION #8# EQUAL #9# #11# #9# #12#)
(SYS::..RUNTIME-OPERATION #3# . #1#)
[... EXCL::%EVAL ]
(EXCL::EVAL-AS-PROGN
#13=((ASDF-TEST:ASSERT-EQUAL
"ok"
(ASDF-TEST::DEWINDOWIZE
(ASDF/RUN-PROGRAM:RUN-PROGRAM
'("cmd" "/c" "echo" "ok")
:OUTPUT
:LINE)))
(ASDF-TEST:ASSERT-EQUAL #9# #11#)
T))
(BLOCK ASDF-TEST::WINDOWS-ONLY-TEST/RUN-PROGRAM . #13#)
[... EXCL::%EVAL ]
(ASDF-TEST::WINDOWS-ONLY-TEST/RUN-PROGRAM)
(SYS::..RUNTIME-OPERATION #8#)
[... EXCL::%EVAL ]
(EXCL::EVAL-AS-PROGN
#14=((ASDF-TEST::WINDOWS-ONLY-TEST/RUN-PROGRAM) (TERPRI) T))
(BLOCK ASDF-TEST::TEST/RUN-PROGRAM . #14#)
[... EXCL::%EVAL ]
(ASDF-TEST::TEST/RUN-PROGRAM)
(SYS::..RUNTIME-OPERATION #8#)
[... EXCL::%EVAL ]
(EVAL (ASDF-TEST::TEST/RUN-PROGRAM))
(EXCL::SLOLOAD
#15=#<EXCL:FILE-SIMPLE-STREAM
#16=#P"C:\\users\\dcooper8\\genworks\\cl\\tests\\asdf\\asdf\\test\\test-run-program.script" for input pos 10070
@
#x2049b192>)
(EXCL::LOAD-FROM-STREAM-OR-BUNDLE #15# #16# NIL T 2 NIL NIL)
(EXCL::LOAD-2
#17="test-run-program.script"
T
#18=(#P""
#P(:TYPE "fasl")
#P(:TYPE "cl")
#P(:TYPE "lisp")
#P(:TYPE "lsp"))
:ERROR
NIL
NIL
NIL
NIL
NIL
NIL
NIL
:DEFAULT
NIL
NIL)
(EXCL::LOAD-1
#17#
T
#18#
:ERROR
NIL
NIL
NIL
NIL
NIL
NIL
NIL
:DEFAULT
NIL
NIL)
(LOAD #17#)
[... EXCL::%EVAL ]
(NIL)
(SYS::..RUNTIME-OPERATION #8#)
(ASDF/CACHE:CALL-WITH-ASDF-CACHE
#20=#<Interpreted Function (unnamed) @ #x2049b5aa>)
(SYS::..RUNTIME-OPERATION #19# . #1#)
(FUNCALL ASDF/CACHE:CALL-WITH-ASDF-CACHE #20#)
[... EXCL::%EVAL ]
(EXCL::EVAL-AS-PROGN
#25=((FUNCALL
(OR (ASDF-TEST:ASYM :CALL-WITH-ASDF-CACHE) 'FUNCALL)
ASDF-TEST::THUNK)
(ASDF-TEST:LEAVE-TEST "Script succeeded" 0)))
(LET*
((#22=#:G161
(CONS
'ERROR
#26=(LAMBDA
(ASDF-TEST::C)
(IGNORE-ERRORS
(FORMAT
*ERROR-OUTPUT*
"~&TEST ABORTED: ~A~&"
ASDF-TEST::C))
(ASDF-TEST::FINISH-OUTPUTS*)
(COND
(ASDF-TEST::*DEBUG-ASDF*
(FORMAT T "~&It's your baby, fix it!~%")
(BREAK))
(T . #21#)))))
(#23=#:G159 (LIST #22#))
(#24=#:G160 (CONS #23# (EXCL::FAST EXCL::*HANDLER-CLUSTERS*)))
(EXCL::*HANDLER-CLUSTERS* #24#))
(DECLARE (DYNAMIC-EXTENT #23# #24# #22# EXCL::*HANDLER-CLUSTERS*))
. #25#)
[... EXCL::EVAL-AS-PROGN ]
(CATCH . #27=(:ASDF-TEST-DONE (HANDLER-BIND ((ERROR #26#)) . #25#)))
[... EXCL::%EVAL ]
(LET
. #28=(((ASDF-TEST::RESULT (CATCH . #27#)))
(WHEN
ASDF-TEST::*QUIT-WHEN-DONE*
(ASDF-TEST::EXIT-LISP ASDF-TEST::RESULT))))
[... EXCL::EVAL-AS-PROGN ]
(BLOCK
ASDF-TEST::CALL-WITH-TEST
(ASDF-TEST::REDIRECT-OUTPUTS)
(LET . #28#))
[... EXCL::%EVAL ]
(ASDF-TEST::CALL-WITH-TEST #20#)
(SYS::..RUNTIME-OPERATION #8# #20#)
[... EXCL::%EVAL ]
(EVAL
(ASDF-TEST:WITH-TEST
NIL
(LOAD (STRING 'ASDF-TEST::|test-run-program.script|))))
(EXCL::SHARP-DOT
#29=#<EXCL:STRING-INPUT-SIMPLE-STREAM
"'(#.(load(st..." pos 158
@
#x2031dbfa>
#\.
NIL)
(EXCL::READ-DISPATCH-CHAR #29# #\#)
(EXCL::READ-MAYBE-NOTHING #29# #\#)
(EXCL::READ-LIST #29# #\()
(EXCL::READ2 #29# T NIL T NIL NIL)
(EXCL::READ1 #29# T NIL T NIL NIL)
(READ #29# T NIL T)
(EXCL::READ-QUOTE #29# #\')
(EXCL::READ2 #29# T NIL NIL NIL NIL)
(EXCL::READ1 #29# T NIL NIL NIL NIL)
(READ #29# T NIL)
(READ-FROM-STRING
"'(#.(load(string'|script-support.lisp|))#.(asdf-test::load-asdf)#.(asdf-test::frob-packages)#.(asdf-test::with-test()(load(string'|test-run-program.script|))))")
(EXCL::DO-COMMAND-LINE-PROCESSING)
(EXCL::START-LISP-EXECUTION T)
Above backtrace due to this condition:
These two expressions fail comparison with EQUAL:
"ok 1" evaluates to "ok 1"
(ASDF-TEST::DEWINDOWIZE (UIOP/RUN-PROGRAM:RUN-PROGRAM "echo ok 1" :OUTPUT :LINE)) evaluates to "ok 1"
Script failed
<The Lisp process exited with status 1 (0x1)>