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)>
On Mon, Oct 14, 2013 at 10:16 PM, Robert Goldman rpgoldman@sift.net wrote:
These "ok 1" errors look deeply mystifying to me, since the two strings look quite similar to me. Is it that run-program echo is somehow causing whitespace between "ok" and "1" to disappear? What *is* that whitespace? Just spaces, or are there tabs involved?
Looking at test-run-program.script, it looks like there should always be only 1 space between "ok" and "1", but in the transcripts below there seem to be multiple additional spaces. Even the fixed "ok 1" string literal in the file seems to be picking up some spaces.
Is this a bug in your email program or something more deeply weird?
Also, would you please let us know which tests failed? I *assume* test-run-program, but having the titles would be helpful.
Thanks, r
Dave Cooper wrote:
With latest pull (with 3.0.2.22) I'm getting one failure on mlisp windows and two on alisp windows (a few pulls ago, alisp windows was passing all tests and mlisp was unknown but apparently failing several which are apparently all fixed now, because the one mlisp failure does not appear casemode related):
=========== mlisp:
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)>
=========== alisp:
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)>
Above backtrace due to this condition: These two expressions fail comparison with EQUAL: (ASDF-TEST::SANITIZE-LOG (ASDF-TEST::RELOAD ASDF/DEFSYSTEM:DEFSYSTEM)) evaluates to ((:COMPILING :SYSTEM)) (QUOTE ((:COMPILING :SYSTEM) (:COMPILE-TOPLEVEL :FILE1) (:LOAD-TOPLEVEL :FILE1) (:COMPILE-TOPLEVEL :FILE2) (:LOAD-TOPLEVEL :FILE2))) evaluates to ((:COMPILING :SYSTEM) (:COMPILE-TOPLEVEL :FILE1) (:LOAD-TOPLEVEL :FILE1) (:COMPILE-TOPLEVEL :FILE2) (:LOAD-TOPLEVEL :FILE2)) Script failed
<The Lisp process exited with status 1 (0x1)>
-- Robert P. Goldman Principal Scientist Smart Information Flow Technologies (d/b/a SIFT, LLC)
211 N. First St., Suite 300 Minneapolis, MN 55401
Voice: (612) 326-3934 Email: rpgoldman@SIFT.net