diff --git a/test/run_tests.js b/test/run_tests.js index eee69b7..defb742 100644 --- a/test/run_tests.js +++ b/test/run_tests.js @@ -6,13 +6,25 @@ const case_path = "./cases" const files = await fs.readdir(case_path) for (const file of files) { - const script = await fs.readFile(`${case_path}/${file}`, {encoding: "utf8"}) - const first_line = script.split("\n")[0] + const source = await fs.readFile(`${case_path}/${file}`, {encoding: "utf8"}) + const first_line = source.split("\n")[0] const expected = first_line.split("EXPECT")[1].trim() - const result = run(script).result - t.test(`testing ${file}: EXPECT ${expected}, GOT ${result}`, - t => { - t.equal(expected, result) - t.end() - }) + if (expected === "PANIC") expect_panic(file, source) + else expect_result(file, source, expected) +} + +function expect_panic(file, source) { + const result = run(source).errors[0] + t.test(`testing ${file}: EXPECT PANIC`, t => { + t.ok(result) + t.end() + }) +} + +function expect_result(file, source, expected) { + const result = run(source).result + t.test(`testing ${file}: EXPECT ${expected}, GOT ${result}`, t => { + t.equal(expected, result) + t.end() + }) }