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




--
My Best,

Dave Cooper, Genworks Support
david.cooper@genworks.com, dave.genworks.com(skype)
USA: 248-327-3253(o), 1-248-330-2979(mobile)
UK: 0191 645 1699