$* testscript <'cmd $@' >"cmd 1" # id-testscript $* foo.test <'cmd $@' >"cmd foo/1" # id wd = [dir_path] $~; wd += test-driver; wd += 1; $* testscript <'cmd "$~"' >"cmd $wd" # wd-testscript wd = [dir_path] $~; wd += test-driver; wd += foo; wd += 1; $* foo.test <'cmd "$~"' >"cmd $wd" # wd $* -s <>EOO # group { cmd1 cmd2 } EOI { { { cmd1 } { cmd2 } } } EOO # Test scope. # $* -s -i <>EOO # test-scope { cmd } EOI { { # 1 cmd } } EOO $* -s -i <>EOO # test-scope-nested { { cmd } } EOI { { # 1 cmd } } EOO $* -s -i <>EOO # test-scope-var { x = abc cmd $x } EOI { { # 1 cmd abc } } EOO $* -s -i <>EOO # test-scope-setup { x = abc +setup cmd $x } EOI { { # 1 setup { # 1/4 cmd abc } } } EOO # # $* <:"{x" 2>>EOE != 0 # expected-newline-lcbrace testscript:1:2: error: expected newline after '{' EOE $* <"{" 2>>EOE != 0 # expected-rcbrace testscript:2:1: error: expected '}' at the end of the scope EOE $* <>EOE != 0 # expected-line-rcbrace { cmd; } EOI testscript:3:1: error: expected another line after ';' EOE $* <<:EOI 2>>EOE != 0 # expected-newline-rcbrace { } EOI testscript:2:2: error: expected newline after '}' EOE $* -s <>EOO # test-1 cmd1 EOI { { cmd1 } } EOO $* -s <>EOO # test-2 cmd1; cmd2 EOI { { cmd1 cmd2 } } EOO $* -s <>EOO # test-3 cmd1; cmd2; cmd3 EOI { { cmd1 cmd2 cmd3 } } EOO $* -s <>EOO # test-var cmd1; x = abc; cmd2 $x EOI { { cmd1 cmd2 abc } } EOO $* -s <>EOO # test-var-first x = abc; cmd $x EOI { { cmd abc } } EOO $* -s <>EOO # var-setup-tdown x = abc cmd $x y = 123 EOI { { cmd abc } } EOO $* <>EOE != 0 # test-after-tdown cmd1 x = abc cmd2 EOI testscript:3:1: error: test after teardown testscript:2:1: info: last teardown line appears here EOE $* <>EOE != 0 # expected-line-eof cmd; EOI testscript:2:1: error: expected another line after ';' EOE $* <<:EOI 2>>EOE != 0 # expected-newline-cmd cmd; EOI testscript:1:5: error: expected newline instead of EOE $* <:"x = abc;" 2>>EOE != 0 # expected-newline-var testscript:1:9: error: expected newline instead of EOE