source [file dirname [info script]]/testing.tcl

needs constraint jim

test jimsh-1.1 {jimsh --help} -body {
	exec [info nameofexecutable] --help
} -match glob -result {jimsh version *Usage: *}

test jimsh-1.2 {jimsh -} {
	exec [info nameofexecutable] - << {puts $(1 + 2)}
} {3}

test jimsh-1.3 {jimsh - arg list} jim {
	exec [info nameofexecutable] - arg list << {puts [join $argv]}
} {arg list}

test jimsh-1.4 {jimsh -e} {
	exec [info nameofexecutable] -e {expr {4 + 5}}
} {9}

test jimsh-1.4 {jimsh -e with args} {
	exec [info nameofexecutable] -e {set argv} arg1 arg2
} {arg1 arg2}

test jimsh-1.5 {jimsh --version} {
	exec [info nameofexecutable] --version
} [info version]

test jimsh-1.6 {jimsh -e with error} -body {
	exec [info nameofexecutable] -e blah
} -returnCodes error -result {invalid command name "blah"}

test jimsh-1.7 {jimsh prompt} -body {
	exec [info nameofexecutable] << "set x 3\nincr x\nexit \$x\n"
} -returnCodes error -match glob -result {Welcome to Jim version *
. 3
. 4
. }

test jimsh-1.8 {jimsh prompt - error} -body {
	exec [info nameofexecutable] << "blah\n"
} -match glob -result {Welcome to Jim version *
. invalid command name "blah"
\[error\] . }

test jimsh-1.9 {jimsh prompt - error} -body {
	exec [info nameofexecutable] << "throw 99\n"
} -match glob -result {Welcome to Jim version *
. \[99\] . }

test jimsh-1.10 {jimsh prompt - continuation} -body {
	exec [info nameofexecutable] << "set x {\nabc\n}\n"
} -match glob -result "Welcome to Jim version *\n. {> {> \nabc\n\n. "


testreport
