Testing mksh for conformance: # $MirOS: src/bin/mksh/check.t,v 1.636 2013/11/30 00:20:46 tg Exp $ @(#)MIRBSD KSH R48 2013/11/29 This shell is actually: @(#)MIRBSD KSH R48 2013/11/29 test.sh built for mksh R48 2013/11/29 Trying Perl interpreter 'perl5'... ./test.sh[70]: perl5: not found Errorlevel 127, running on '' => not using Trying Perl interpreter 'perl'... Errorlevel 0, running on 'beos, Perl version 5.00503' => using it + perl ./check.pl -p /boot/home/mksh/mksh -C shell:legacy-no,int:32,arge,no-histfile,fastbox -v -s ./check.t pass ./check.t:KSH_VERSION pass ./check.t:selftest-1 pass ./check.t:selftest-2 pass ./check.t:selftest-3 pass ./check.t:selftest-direct-builtin-call pass ./check.t:alias-1 pass ./check.t:alias-2 pass ./check.t:alias-3 pass ./check.t:alias-4 pass ./check.t:alias-5 pass ./check.t:alias-6 pass ./check.t:alias-7 pass ./check.t:alias-8 pass ./check.t:alias-9 pass ./check.t:alias-10 pass ./check.t:arith-lazy-1 pass ./check.t:arith-lazy-2 pass ./check.t:arith-lazy-3 pass ./check.t:arith-lazy-4 pass ./check.t:arith-ternary-prec-1 pass ./check.t:arith-ternary-prec-2 pass ./check.t:arith-div-assoc-1 pass ./check.t:arith-div-byzero pass ./check.t:arith-div-intmin-by-minusone pass ./check.t:arith-assop-assoc-1 pass ./check.t:arith-mandatory pass ./check.t:arith-unsigned-1 pass ./check.t:arith-limit32-1 pass ./check.t:bksl-nl-ign-1 pass ./check.t:bksl-nl-ign-2 pass ./check.t:bksl-nl-ign-3 pass ./check.t:bksl-nl-ign-4 pass ./check.t:bksl-nl-ign-5 pass ./check.t:bksl-nl-1 pass ./check.t:bksl-nl-2 pass ./check.t:bksl-nl-3 pass ./check.t:bksl-nl-4 pass ./check.t:bksl-nl-5 pass ./check.t:bksl-nl-6 pass ./check.t:bksl-nl-7 pass ./check.t:bksl-nl-8 pass ./check.t:bksl-nl-9 pass ./check.t:bksl-nl-10 pass ./check.t:bksl-nl-ksh-1 pass ./check.t:bksl-nl-ksh-2 pass ./check.t:break-1 pass ./check.t:break-2 pass ./check.t:break-3 pass ./check.t:break-4 pass ./check.t:break-5 pass ./check.t:continue-1 pass ./check.t:continue-2 pass ./check.t:continue-3 pass ./check.t:continue-4 pass ./check.t:continue-5 pass ./check.t:cd-history pass ./check.t:cd-pe pass ./check.t:env-prompt pass ./check.t:expand-ugly pass ./check.t:expand-unglob-dblq pass ./check.t:expand-unglob-unq FAIL ./check.t:expand-threecolons-dblq Description: Check for a particular thing that used to segfault unexpected exit status 1 (signal 1), expected 1 FAIL ./check.t:expand-threecolons-unq Description: Check for a particular thing that used to not error out unexpected exit status 1 (signal 1), expected 1 pass ./check.t:expand-weird-1 pass ./check.t:expand-weird-2 pass ./check.t:expand-weird-3 pass ./check.t:eglob-bad-1 pass ./check.t:eglob-bad-2 pass ./check.t:eglob-infinite-plus pass ./check.t:eglob-subst-1 pass ./check.t:eglob-nomatch-1 pass ./check.t:eglob-match-1 pass ./check.t:eglob-case-1 pass ./check.t:eglob-case-2 pass ./check.t:eglob-trim-1 pass ./check.t:eglob-trim-2 pass ./check.t:eglob-trim-3 pass ./check.t:eglob-substrpl-1 pass ./check.t:eglob-substrpl-2 pass ./check.t:eglob-substrpl-3a pass ./check.t:eglob-substrpl-3b pass ./check.t:eglob-substrpl-3c pass ./check.t:eglob-utf8-1 pass ./check.t:glob-bad-1 pass ./check.t:glob-bad-2 pass ./check.t:glob-range-1 pass ./check.t:glob-range-2 pass ./check.t:glob-range-3 pass ./check.t:glob-range-4 pass ./check.t:glob-range-5 pass ./check.t:glob-trim-1 pass ./check.t:heredoc-1 pass ./check.t:heredoc-2 pass ./check.t:heredoc-3 FAIL ./check.t:heredoc-4 Description: Check that an error occurs if the heredoc-delimiter is missing. unexpected exit status 1 (signal 1), expected e > 0 pass ./check.t:heredoc-5 pass ./check.t:heredoc-6 pass ./check.t:heredoc-7 pass ./check.t:heredoc-8 pass ./check.t:heredoc-9a pass ./check.t:heredoc-9c pass ./check.t:heredoc-9d pass ./check.t:heredoc-9e pass ./check.t:heredoc-10 pass ./check.t:heredoc-11 pass ./check.t:heredoc-comsub-1 pass ./check.t:heredoc-comsub-2 pass ./check.t:heredoc-comsub-3 pass ./check.t:heredoc-comsub-4 pass ./check.t:heredoc-subshell-1 pass ./check.t:heredoc-subshell-2 pass ./check.t:heredoc-subshell-3 pass ./check.t:heredoc-weird-1 pass ./check.t:heredoc-weird-2 pass ./check.t:heredoc-weird-4 pass ./check.t:heredoc-weird-5 pass ./check.t:heredoc-tmpfile-1 pass ./check.t:heredoc-tmpfile-2 pass ./check.t:heredoc-tmpfile-3 pass ./check.t:heredoc-tmpfile-4 pass ./check.t:heredoc-tmpfile-5 pass ./check.t:heredoc-tmpfile-6 pass ./check.t:heredoc-tmpfile-7 pass ./check.t:heredoc-tmpfile-8 pass ./check.t:heredoc-quoting-unsubst pass ./check.t:heredoc-quoting-subst pass ./check.t:single-quotes-in-braces pass ./check.t:single-quotes-in-quoted-braces pass ./check.t:single-quotes-in-braces-nested pass ./check.t:single-quotes-in-brace-pattern pass ./check.t:single-quotes-in-heredoc-braces pass ./check.t:single-quotes-in-nested-braces pass ./check.t:single-quotes-in-nested-quoted-braces pass ./check.t:single-quotes-in-nested-braces-nested pass ./check.t:single-quotes-in-nested-brace-pattern pass ./check.t:single-quotes-in-heredoc-nested-braces pass ./check.t:history-basic pass ./check.t:history-dups pass ./check.t:history-unlink pass ./check.t:history-e-minus-1 pass ./check.t:history-e-minus-2 pass ./check.t:history-e-minus-3 pass ./check.t:history-e-minus-4 pass ./check.t:history-e-minus-5 pass ./check.t:history-list-1 pass ./check.t:history-list-2 pass ./check.t:history-list-3 pass ./check.t:history-list-4 pass ./check.t:history-list-5 pass ./check.t:history-list-6 pass ./check.t:history-list-7 pass ./check.t:history-list-r-1 pass ./check.t:history-list-r-2 pass ./check.t:history-list-r-3 pass ./check.t:history-subst-1 pass ./check.t:history-subst-2 pass ./check.t:history-subst-3 pass ./check.t:history-subst-4 pass ./check.t:history-subst-5 FAIL ./check.t:history-ed-1 (ignored) Description: Basic (ed) editing works (assumes you have generic ed editor that prints no prompts). This is for newish ed(1) and stderr. unexpected exit status 127 (stopped), expected 0 unexpected stdout - got too little output wanted: abc def FOOBAR def got: abc def unexpected stderr - wanted pattern: /^X*13\n16\necho FOOBAR def\nX*$/ got: XX/boot/home/mksh/mksh: /bin/ed: not found X/boot/home/mksh/mksh: [3]: s/abc/FOOBAR/: not found X/boot/home/mksh/mksh: [4]: w: not found X/boot/home/mksh/mksh: [5]: q: not found X [incomplete last line] FAIL ./check.t:history-ed-2 (ignored) Description: Correct command is edited when number given unexpected exit status 127 (stopped), expected 0 unexpected stdout - got too little output wanted: line 1 line 2 is here line 3 line 4 line 2 is changed got: line 1 line 2 is here line 3 line 4 unexpected stderr - wanted pattern: /^X*20\n23\necho line 2 is changed\nX*$/ got: XXXXX/boot/home/mksh/mksh: /bin/ed: not found X/boot/home/mksh/mksh: [6]: s/is: not found X/boot/home/mksh/mksh: [7]: w: not found X/boot/home/mksh/mksh: [8]: q: not found X [incomplete last line] FAIL ./check.t:history-ed-3 (ignored) Description: Newly created multi line commands show up as single command in history. unexpected stdout - first difference: line 2, char 1 (wanted 'F', got 'a' wanted: abc def FOOBAR def a new line 1 echo abc def 2 echo FOOBAR def 3 echo a new line got: abc def a new line 1 echo abc def 2 fc echo 3 s/abc/FOOBAR/ 4 $a 5 echo a new line 6 . 7 w 8 q unexpected stderr - wanted pattern: /^X*13\n32\necho FOOBAR def\necho a new line\nX*$/ got: XX/boot/home/mksh/mksh: /bin/ed: not found X/boot/home/mksh/mksh: [3]: s/abc/FOOBAR/: not found XXX/boot/home/mksh/mksh: [6]: .: missing argument X/boot/home/mksh/mksh: [7]: w: not found X/boot/home/mksh/mksh: [8]: q: not found XX [incomplete last line] pass ./check.t:IFS-space-1 pass ./check.t:IFS-colon-1 pass ./check.t:IFS-null-1 pass ./check.t:IFS-space-colon-1 pass ./check.t:IFS-space-colon-2 pass ./check.t:IFS-space-colon-4 pass ./check.t:IFS-space-colon-5 pass ./check.t:IFS-subst-1 fail ./check.t:IFS-subst-2 (as expected) Description: Check leading whitespace after trim does not make a field unexpected stdout - first difference: line 1, char 15 (wanted '1', got '>' wanted: <1> <1> <2> got: <1> <> <1> <2> pass ./check.t:integer-base-err-1 pass ./check.t:integer-base-err-2 pass ./check.t:integer-base-err-3 pass ./check.t:integer-base-err-4 pass ./check.t:integer-base-1 pass ./check.t:integer-base-2 pass ./check.t:integer-base-3 pass ./check.t:integer-base-4 pass ./check.t:integer-base-5 pass ./check.t:integer-base-6 pass ./check.t:integer-base-7 pass ./check.t:integer-base-check-flat pass ./check.t:integer-base-check-numeric-from pass ./check.t:integer-base-check-numeric-to pass ./check.t:integer-arithmetic-span pass ./check.t:lineno-stdin pass ./check.t:lineno-inc pass ./check.t:lineno-func pass ./check.t:lineno-unset pass ./check.t:lineno-unset-use FAIL ./check.t:lineno-trap Description: Check if LINENO is tracked in traps unexpected exit status 1 (signal 1), expected 1 pass ./check.t:unknown-trap pass ./check.t:read-IFS-1 pass ./check.t:read-ksh-1 pass ./check.t:read-regress-1 pass ./check.t:read-delim-1 pass ./check.t:read-ext-1 pass ./check.t:regression-1 pass ./check.t:regression-2 pass ./check.t:regression-6 pass ./check.t:regression-9 pass ./check.t:regression-10 pass ./check.t:regression-11 pass ./check.t:regression-12 pass ./check.t:regression-13 pass ./check.t:regression-14 pass ./check.t:regression-15 pass ./check.t:regression-16 pass ./check.t:regression-17 pass ./check.t:regression-19 pass ./check.t:regression-21 pass ./check.t:regression-22 pass ./check.t:regression-23 pass ./check.t:regression-25 pass ./check.t:regression-26 pass ./check.t:regression-27 pass ./check.t:regression-28 pass ./check.t:regression-29 pass ./check.t:regression-30 pass ./check.t:regression-31 pass ./check.t:regression-32 pass ./check.t:regression-33 pass ./check.t:regression-35 pass ./check.t:regression-36 pass ./check.t:regression-37 pass ./check.t:regression-38 pass ./check.t:regression-39 pass ./check.t:regression-40 pass ./check.t:regression-41 pass ./check.t:regression-42 pass ./check.t:regression-43 pass ./check.t:regression-45 pass ./check.t:regression-46 pass ./check.t:regression-47 pass ./check.t:regression-48 pass ./check.t:regression-49 pass ./check.t:regression-50 pass ./check.t:regression-51 pass ./check.t:regression-52 pass ./check.t:regression-53 pass ./check.t:regression-54 pass ./check.t:regression-55 pass ./check.t:regression-57 pass ./check.t:regression-58 pass ./check.t:regression-59 pass ./check.t:regression-60 pass ./check.t:regression-61 pass ./check.t:regression-62 pass ./check.t:regression-63 pass ./check.t:regression-64 pass ./check.t:regression-65 pass ./check.t:regression-66 pass ./check.t:readonly-0 pass ./check.t:readonly-1 pass ./check.t:readonly-2a pass ./check.t:readonly-2b pass ./check.t:readonly-3 pass ./check.t:syntax-1 pass ./check.t:xxx-quoted-newline-1 pass ./check.t:xxx-quoted-newline-2 pass ./check.t:xxx-quoted-newline-3 pass ./check.t:xxx-multi-assignment-cmd pass ./check.t:xxx-multi-assignment-posix-cmd pass ./check.t:xxx-multi-assignment-posix-nocmd pass ./check.t:xxx-multi-assignment-posix-subassign pass ./check.t:xxx-exec-environment-1 pass ./check.t:xxx-exec-environment-2 pass ./check.t:exec-function-environment-1 pass ./check.t:xxx-what-do-you-call-this-1 pass ./check.t:xxx-prefix-strip-1 pass ./check.t:xxx-prefix-strip-2 FAIL ./check.t:xxx-variable-syntax-1 Description (missing) unexpected exit status 1 (signal 1), expected 1 FAIL ./check.t:xxx-variable-syntax-2 Description (missing) unexpected exit status 1 (signal 1), expected 1 FAIL ./check.t:xxx-variable-syntax-3 Description (missing) unexpected exit status 1 (signal 1), expected 1 pass ./check.t:xxx-substitution-eval-order pass ./check.t:xxx-set-option-1 pass ./check.t:xxx-exec-1 pass ./check.t:xxx-while-1 pass ./check.t:xxx-status-1 pass ./check.t:xxx-status-2 pass ./check.t:xxx-clean-chars-1 FAIL ./check.t:xxx-param-subst-qmark-1 Description: Check suppresion of error message with null string. According to POSIX, it shouldn't print the error as 'word' isn't ommitted. ksh88/93, Solaris /bin/sh and /usr/xpg4/bin/sh all print the error, that's why the condition is reversed. unexpected exit status 1 (signal 1), expected 1 pass ./check.t:xxx-param-_-1 pass ./check.t:tilde-expand-1 pass ./check.t:tilde-expand-2 pass ./check.t:exit-err-1 pass ./check.t:exit-err-2 pass ./check.t:exit-err-3 pass ./check.t:exit-err-4 pass ./check.t:exit-err-5 FAIL ./check.t:exit-err-7 Description: "set -e" regression (LP#1104543) unexpected exit status 1 (signal 1), expected 1 pass ./check.t:exit-err-8 pass ./check.t:exit-enoent-1 pass ./check.t:exit-eval-1 FAIL ./check.t:exit-trap-1 Description: Check that "exit" with no arguments behaves SUSv4 conformant. unexpected exit status 9 (signal 9), expected 9 pass ./check.t:exit-trap-2 pass ./check.t:exit-trap-interactive pass ./check.t:test-stlt-1 pass ./check.t:test-precedence-1 pass ./check.t:test-option-1 pass ./check.t:mkshrc-1 pass ./check.t:mkshrc-2a pass ./check.t:mkshrc-2b pass ./check.t:mkshrc-3 pass ./check.t:sh-mode-1 pass ./check.t:sh-mode-2a pass ./check.t:pipeline-1 pass ./check.t:pipeline-2 pass ./check.t:pipeline-3 pass ./check.t:pipeline-4 pass ./check.t:typeset-1 pass ./check.t:typeset-padding-1 pass ./check.t:typeset-padding-2 pass ./check.t:utf8bom-1 FAIL ./check.t:utf8bom-2 (ignored) Description: Check that we can execute BOM-shebangs (failures not fatal) XXX if the OS can already execute them, we lose note: cygwin execve(2) doesn't return to us with ENOEXEC, we lose note: Ultrix perl5 t4 returns 65280 (exit-code 255) and no text unexpected exit status 1 (signal 1), expected 0 unexpected stdout - got too little output wanted: 1 a=/nonexistant{FOO} 2 a=/nonexistant{FOO} 3 a=BAR 4 a=BAR got: 1 a=/nonexistant{FOO} 2 a=/nonexistant{FOO} pass ./check.t:utf8opt-1a pass ./check.t:utf8opt-2a pass ./check.t:utf8opt-3a pass ./check.t:utf8opt-3b pass ./check.t:aliases-1-hartz4 pass ./check.t:aliases-2b-hartz4 pass ./check.t:aliases-3b-hartz4 pass ./check.t:aliases-cmdline pass ./check.t:aliases-funcdef-1 pass ./check.t:aliases-funcdef-2 pass ./check.t:aliases-funcdef-3 pass ./check.t:aliases-funcdef-4 pass ./check.t:arrays-1 pass ./check.t:arrays-2a pass ./check.t:arrays-2b pass ./check.t:arrays-3 pass ./check.t:arrays-4 pass ./check.t:arrays-5 pass ./check.t:arrays-6 pass ./check.t:arrays-7 pass ./check.t:arrays-8 pass ./check.t:arrays-9a pass ./check.t:arrays-9b pass ./check.t:arrassign-basic pass ./check.t:arrassign-fnc-none pass ./check.t:arrassign-fnc-local pass ./check.t:arrassign-fnc-global pass ./check.t:strassign-fnc-none pass ./check.t:strassign-fnc-local pass ./check.t:strassign-fnc-global pass ./check.t:varexpand-substr-1 pass ./check.t:varexpand-substr-2 pass ./check.t:varexpand-substr-3 pass ./check.t:varexpand-substr-4 pass ./check.t:varexpand-substr-5A pass ./check.t:varexpand-substr-5W pass ./check.t:varexpand-substr-6 pass ./check.t:varexpand-special-hash pass ./check.t:varexpand-special-quote pass ./check.t:varexpand-null-1 pass ./check.t:varexpand-null-2 pass ./check.t:print-funny-chars pass ./check.t:print-bksl-c pass ./check.t:print-cr pass ./check.t:print-nul-chars pass ./check.t:print-escapes pass ./check.t:dollar-doublequoted-strings pass ./check.t:dollar-quoted-strings pass ./check.t:dollar-quotes-in-heredocs-strings pass ./check.t:dot-needs-argument pass ./check.t:alias-function-no-conflict pass ./check.t:bash-function-parens pass ./check.t:integer-base-one-1 pass ./check.t:integer-base-one-2a pass ./check.t:integer-base-one-2b pass ./check.t:integer-base-one-2c1 pass ./check.t:integer-base-one-2c2 pass ./check.t:integer-base-one-2d1 pass ./check.t:integer-base-one-2d2 pass ./check.t:integer-base-one-2d3 pass ./check.t:integer-base-one-2d4 pass ./check.t:integer-base-one-2d5 pass ./check.t:integer-base-one-2d6 pass ./check.t:integer-base-one-3As pass ./check.t:integer-base-one-3Ws pass ./check.t:integer-base-one-3Ar pass ./check.t:integer-base-one-3Wr pass ./check.t:integer-base-one-4 pass ./check.t:integer-base-one-5A pass ./check.t:integer-base-one-5W pass ./check.t:ulimit-1 pass ./check.t:redir-1 pass ./check.t:bashiop-1 pass ./check.t:bashiop-2a pass ./check.t:bashiop-2b pass ./check.t:bashiop-2c pass ./check.t:bashiop-3a pass ./check.t:bashiop-3b pass ./check.t:bashiop-4 pass ./check.t:bashiop-5-normal pass ./check.t:mkshiop-1 pass ./check.t:mkshiop-2 pass ./check.t:oksh-eval pass ./check.t:oksh-and-list-error-1 pass ./check.t:oksh-and-list-error-2 pass ./check.t:oksh-or-list-error-1 pass ./check.t:oksh-longline-crash pass ./check.t:oksh-seterror-1 pass ./check.t:oksh-seterror-2 pass ./check.t:oksh-seterror-3 pass ./check.t:oksh-seterror-4 pass ./check.t:oksh-seterror-5 pass ./check.t:oksh-seterror-6 pass ./check.t:oksh-seterror-7 pass ./check.t:oksh-input-comsub pass ./check.t:oksh-empty-for-list pass ./check.t:oksh-varfunction-mod1 pass ./check.t:fd-cloexec-1 pass ./check.t:fd-cloexec-2 pass ./check.t:comsub-1a pass ./check.t:comsub-1b pass ./check.t:comsub-2 pass ./check.t:comsub-3 pass ./check.t:comsub-4 pass ./check.t:comsub-5 pass ./check.t:comsub-torture pass ./check.t:comsub-torture-io pass ./check.t:funsub-1 pass ./check.t:funsub-2 pass ./check.t:valsub-1 pass ./check.t:test-stnze-1 pass ./check.t:test-stnze-2 pass ./check.t:event-subst-3 pass ./check.t:event-subst-0 pass ./check.t:nounset-1 pass ./check.t:nameref-1 pass ./check.t:nameref-2da pass ./check.t:nameref-3 pass ./check.t:nameref-4 pass ./check.t:better-parens-1a pass ./check.t:better-parens-1b pass ./check.t:better-parens-1c pass ./check.t:better-parens-2a pass ./check.t:better-parens-2b pass ./check.t:better-parens-2c pass ./check.t:better-parens-3a pass ./check.t:better-parens-3b pass ./check.t:better-parens-3c pass ./check.t:better-parens-4a pass ./check.t:better-parens-4b pass ./check.t:better-parens-4c pass ./check.t:echo-test-1 pass ./check.t:echo-test-2 pass ./check.t:echo-test-3-normal pass ./check.t:utilities-getopts-1 pass ./check.t:utilities-getopts-2 pass ./check.t:wcswidth-1 pass ./check.t:wcswidth-2 FAIL ./check.t:wcswidth-3 Description: Check some corner cases unexpected exit status 1 (signal 1), expected 1 FAIL ./check.t:wcswidth-4a Description: Check some corner cases unexpected exit status 1 (signal 1), expected 1 FAIL ./check.t:wcswidth-4b Description: Check some corner cases unexpected exit status 1 (signal 1), expected 1 pass ./check.t:wcswidth-4c pass ./check.t:debian-117-1 pass ./check.t:debian-117-2 pass ./check.t:debian-117-3 pass ./check.t:debian-117-4 pass ./check.t:case-zsh pass ./check.t:case-braces pass ./check.t:command-shift pass ./check.t:duffs-device pass ./check.t:stateptr-underflow pass ./check.t:xtrace-1 Total failed: 18 (4 ignored) (13 unexpected) Total passed: 450