From d4f72e18bedda726a74ec0960e59e304055f9039 Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Thu, 11 Oct 2018 16:56:50 -0400 Subject: Improve tools/unit_tests.py (#958) Checks the output more carefully. The first line of output from js/unit_tests.ts should be something like "running 96 tests" And the last line should be something like "test result: ok. 96 passed; 0 failed; 0 ignored; 0 measured; 36 filtered out" This parses those strings and make sure they align. This will catch silent death bugs. --- tools/util_test.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'tools/util_test.py') diff --git a/tools/util_test.py b/tools/util_test.py index e40d0aed0..4adf0d658 100644 --- a/tools/util_test.py +++ b/tools/util_test.py @@ -1,5 +1,8 @@ # Copyright 2018 the Deno authors. All rights reserved. MIT license. from util import pattern_match, parse_exit_code, shell_quote_win +import util +import os +import sys def pattern_match_test(): @@ -44,10 +47,42 @@ def shell_quote_win_test(): 'a"b""c\\d\\"e\\\\') +def parse_unit_test_output_test(): + print "Testing util.parse_unit_test_output()..." + # This is an example of a successful unit test output. + output = open( + os.path.join(util.root_path, "tools/testdata/unit_test_output1.txt")) + (actual, expected) = util.parse_unit_test_output(output, False) + assert actual == 96 + assert expected == 96 + + # This is an example of a silently dying unit test. + output = open( + os.path.join(util.root_path, "tools/testdata/unit_test_output2.txt")) + (actual, expected) = util.parse_unit_test_output(output, False) + assert actual == None + assert expected == 96 + + # This is an example of compiling before successful unit tests. + output = open( + os.path.join(util.root_path, "tools/testdata/unit_test_output3.txt")) + (actual, expected) = util.parse_unit_test_output(output, False) + assert actual == 96 + assert expected == 96 + + # Check what happens on empty output. + from StringIO import StringIO + output = StringIO("\n\n\n") + (actual, expected) = util.parse_unit_test_output(output, False) + assert actual == None + assert expected == None + + def util_test(): pattern_match_test() parse_exit_code_test() shell_quote_win_test() + parse_unit_test_output_test() if __name__ == '__main__': -- cgit v1.2.3