You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

174 lines
4.0 KiB

#!/usr/bin/expect
set SUGAR_EXECUTABLE $::env(SUGAR_EXECUTABLE)
set BUILD_NAME 006.
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"
}