$* testscript <'cmd $@' >"cmd 1" # id-testscript $* foo.test <'cmd $@' >"cmd foo/1" # id wd = [dir_path] $~; wd += test; wd += 1; $* testscript <'cmd $~' >"cmd $wd" # wd-testscript wd = [dir_path] $~; wd += test; wd += foo; wd += 1; $* foo.test <'cmd $~' >"cmd $wd" # wd $* -s <<EOI >>EOO # compound-2 cmd1; cmd2 EOI { { cmd1 cmd2 } } EOO $* -s <<EOI >>EOO # compound-3 cmd1; cmd2; cmd3 EOI { { cmd1 cmd2 cmd3 } } EOO $* -s <<EOI >>EOO # compound-var cmd1; x = abc; cmd2 \$x EOI { { cmd1 cmd2 abc } } EOO $* -s <<EOI >>EOO # compound-var-first x = abc; cmd \$x EOI { { cmd abc } } EOO $* -s <<EOI >>EOO # var-setup-tdown x = abc cmd \$x y = 123 EOI { { cmd abc } } EOO $* <<EOI 2>>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 $* <<EOI 2>>EOE != 0 # expected-line cmd; EOI testscript:2:1: error: expected another line after semicolon EOE $* <<:EOI 2>>EOE != 0 # expected-newline-cmd cmd; EOI testscript:1:5: error: expected newline instead of <end of file> EOE $* <:"x = abc;" 2>>EOE != 0 # expected-newline-var testscript:1:9: error: expected newline instead of <end of file> EOE