#!/usr/bin/expect
|
|
|
|
set SUGAR_EXECUTABLE $::env(SUGAR_EXECUTABLE)
|
|
set BUILD_NAME 005.
|
|
|
|
proc abort {reason} {
|
|
puts "test failed $reason"
|
|
exit 1
|
|
}
|
|
|
|
spawn -noecho $SUGAR_EXECUTABLE lex
|
|
expect {
|
|
error { abort "failed to parse" }
|
|
eof { abort "failed silently" }
|
|
expects
|
|
}
|
|
expect eof
|
|
lassign [wait] pid spawnid os_error_flag value
|
|
if {$value == 0} {
|
|
abort "compiler didn't crash"
|
|
}
|
|
|
|
spawn -noecho $SUGAR_EXECUTABLE "fake_01.006.not_a_file" lex
|
|
expect {
|
|
error { abort "failed to parse" }
|
|
eof { abort "failed silently" }
|
|
"does not exist"
|
|
}
|
|
expect eof
|
|
lassign [wait] pid spawnid os_error_flag value
|
|
if {$value == 0} {
|
|
abort "compiler didn't crash"
|
|
}
|
|
|
|
spawn -noecho $SUGAR_EXECUTABLE "fake_01.006.not_a_file" lex-all
|
|
expect {
|
|
error { abort "failed to parse" }
|
|
eof { abort "failed silently" }
|
|
"does not exist"
|
|
}
|
|
expect eof
|
|
lassign [wait] pid spawnid os_error_flag value
|
|
if {$value == 0} {
|
|
abort "compiler didn't crash"
|
|
}
|
|
|
|
spawn -noecho $SUGAR_EXECUTABLE "tests/005/library.mol" lex merge
|
|
expect {
|
|
error { abort "failed to parse" }
|
|
eof { abort "failed silently" }
|
|
expects
|
|
}
|
|
expect eof
|
|
lassign [wait] pid spawnid os_error_flag value
|
|
if {$value == 0} {
|
|
abort "compiler didn't crash"
|
|
}
|
|
|
|
spawn -noecho $SUGAR_EXECUTABLE merge
|
|
expect {
|
|
error { abort "failed to parse" }
|
|
eof { abort "failed silently" }
|
|
expects
|
|
}
|
|
expect eof
|
|
lassign [wait] pid spawnid os_error_flag value
|
|
if {$value == 0} {
|
|
abort "compiler didn't crash"
|
|
}
|
|
|
|
spawn -noecho $SUGAR_EXECUTABLE parse
|
|
expect {
|
|
error { abort "failed to parse" }
|
|
eof { abort "failed silently" }
|
|
expects
|
|
}
|
|
expect eof
|
|
lassign [wait] pid spawnid os_error_flag value
|
|
if {$value == 0} {
|
|
abort "compiler didn't crash"
|
|
}
|
|
|
|
spawn -noecho $SUGAR_EXECUTABLE generate
|
|
expect {
|
|
error { abort "failed to parse" }
|
|
eof { abort "failed silently" }
|
|
expects
|
|
}
|
|
expect eof
|
|
lassign [wait] pid spawnid os_error_flag value
|
|
if {$value == 0} {
|
|
abort "compiler didn't crash"
|
|
}
|
|
|
|
file delete "/tmp/006.fake_target"
|
|
spawn -noecho $SUGAR_EXECUTABLE "/tmp/006.fake_target" generate
|
|
expect {
|
|
error { abort "failed to parse" }
|
|
eof { abort "failed silently" }
|
|
"parsed output"
|
|
}
|
|
expect eof
|
|
lassign [wait] pid spawnid os_error_flag value
|
|
if {$value == 0} {
|
|
abort "compiler didn't crash"
|
|
}
|
|
if {[file exists "/tmp/006.fake_target"]} {
|
|
abort "created a file even if it failed to compile anything"
|
|
file delete "/tmp/006.fake_target"
|
|
}
|
|
|
|
spawn -noecho $SUGAR_EXECUTABLE merge-all
|
|
expect {
|
|
error { abort "failed to parse" }
|
|
eof { abort "failed silently" }
|
|
expects
|
|
}
|
|
expect eof
|
|
lassign [wait] pid spawnid os_error_flag value
|
|
if {$value == 0} {
|
|
abort "compiler didn't crash"
|
|
}
|
|
|
|
spawn -noecho $SUGAR_EXECUTABLE assemble
|
|
expect {
|
|
error { abort "failed to parse" }
|
|
eof { abort "failed silently" }
|
|
expects
|
|
}
|
|
expect eof
|
|
lassign [wait] pid spawnid os_error_flag value
|
|
if {$value == 0} {
|
|
abort "compiler didn't crash"
|
|
}
|
|
|
|
spawn -noecho $SUGAR_EXECUTABLE help
|
|
expect {
|
|
error { abort "failed to parse" }
|
|
eof { abort "failed silently" }
|
|
Commands
|
|
}
|
|
expect eof
|
|
lassign [wait] pid spawnid os_error_flag value
|
|
if {$value != 0} {
|
|
abort "compiler crashed displaying help"
|
|
}
|
|
|
|
spawn -noecho $SUGAR_EXECUTABLE --help
|
|
expect {
|
|
error { abort "failed to parse" }
|
|
eof { abort "failed silently" }
|
|
Commands
|
|
}
|
|
expect eof
|
|
lassign [wait] pid spawnid os_error_flag value
|
|
if {$value != 0} {
|
|
abort "compiler crashed displaying help"
|
|
}
|