Fix some bugs from last time, which I committed to make sure it didn't delete anything...
This commit is contained in:
48
tests/tester.krak
Normal file
48
tests/tester.krak
Normal file
@@ -0,0 +1,48 @@
|
||||
import string:*
|
||||
import io:*
|
||||
import os:*
|
||||
|
||||
fun error(message: *char) {
|
||||
println("ERROR:")
|
||||
println(message)
|
||||
}
|
||||
|
||||
fun main(argc: int, argv: **char): int {
|
||||
var kraken_path = string("./test_compiler/test_compiler")
|
||||
var all_results = string()
|
||||
var num_passed = 0
|
||||
var name_length = 0
|
||||
// first iterate and get the length of the longest line
|
||||
for (var i = 1; i < argc; i++;) {
|
||||
var name = string(argv[i])
|
||||
if (name.length() > name_length)
|
||||
name_length = name.length()
|
||||
}
|
||||
var pad_with_spaces = fun(name: string): string {
|
||||
while (name.length() < name_length) name += " "
|
||||
return name
|
||||
}
|
||||
for (var i = 1; i < argc; i++;) {
|
||||
var test_name = string(argv[i])
|
||||
println(string("Doing test for ") + test_name)
|
||||
if (system(kraken_path + " " + test_name + ".krak")) error("could not compile")
|
||||
var results_file_name = test_name + ".results"
|
||||
var expected_results_file_name = test_name + ".expected_results"
|
||||
if (system(string("./") + test_name + ".krak.exe > " + results_file_name)) error("could not run")
|
||||
if (file_exists(results_file_name) && file_exists(expected_results_file_name) && read_file(results_file_name) == read_file(expected_results_file_name)) {
|
||||
println(test_name + "\tPASSED!")
|
||||
all_results += pad_with_spaces(test_name) + "\tPASSED!\n"
|
||||
num_passed++
|
||||
system(string("rm ./") + results_file_name)
|
||||
} else {
|
||||
println(test_name + "\tFAILED!")
|
||||
all_results += pad_with_spaces(test_name) + "\tFAILED!!!\n"
|
||||
}
|
||||
system(string("rm ./") + test_name + ".krak.*")
|
||||
}
|
||||
println(string("\n\nTEST RESULTS: ") + num_passed + "/" + (argc-1))
|
||||
println(all_results)
|
||||
println(string("TEST RESULTS: ") + num_passed + "/" + (argc-1))
|
||||
return 0
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user