diff --git a/stdlib/io.krak b/stdlib/io.krak index ff0df15..96494c5 100644 --- a/stdlib/io.krak +++ b/stdlib/io.krak @@ -101,6 +101,8 @@ fun file_exists(path: string::string): bool { return result } fun read_file(path: string::string): string::string { + if (!file_exists(path)) + return string::string() var toRet.construct(read_file_binary(path)): string::string return toRet } diff --git a/tests/new_runner.sh b/tests/new_runner.sh old mode 100644 new mode 100755 index 629e29a..80bdbb6 --- a/tests/new_runner.sh +++ b/tests/new_runner.sh @@ -1,6 +1,6 @@ #!/bin/bash -runner_path="./test_runner/test_runner" +runner_path="./tester/tester" #testDir=${1:-"../tests"} testDir="." ext=${2:-"krak"} @@ -12,4 +12,4 @@ for dir in `find ${testDir} -type f -name "test_*.${ext}"`; do fileList+=\ $testDir\/$filename done -${runner_path} "--test" ${fileList} +${runner_path} ${fileList} diff --git a/tests/test_runner.krak b/tests/tester.krak similarity index 87% rename from tests/test_runner.krak rename to tests/tester.krak index de0cd38..c938ab7 100644 --- a/tests/test_runner.krak +++ b/tests/tester.krak @@ -29,19 +29,20 @@ fun main(argc: int, argv: **char): int { 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 (read_file(results_file_name) == read_file(expected_results_file_name)) { + 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" + 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 }