Index: tools/isolate/run_test_cases_smoke_test.py |
diff --git a/tools/isolate/run_test_cases_smoke_test.py b/tools/isolate/run_test_cases_smoke_test.py |
index 6cc413a42ab49c03d259725184e50c2eacccc02a..00b552c0daf5ef06fa81aa964c5650a352f79e71 100755 |
--- a/tools/isolate/run_test_cases_smoke_test.py |
+++ b/tools/isolate/run_test_cases_smoke_test.py |
@@ -13,7 +13,24 @@ import unittest |
ROOT_DIR = os.path.dirname(os.path.abspath(__file__)) |
sys.path.append(os.path.join(ROOT_DIR, 'data', 'gtest_fake')) |
-import gtest_fake |
+import gtest_fake_base |
+ |
+ |
+def RunTest(test_file): |
+ target = os.path.join(ROOT_DIR, 'data', 'gtest_fake', test_file) |
+ cmd = [ |
+ sys.executable, |
+ os.path.join(ROOT_DIR, 'run_test_cases.py'), |
+ '--no-dump', |
+ target, |
+ ] |
+ logging.debug(' '.join(cmd)) |
+ proc = subprocess.Popen( |
+ cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) |
+ # pylint is confused. |
+ out, err = proc.communicate() or ('', '') |
+ |
+ return (out, err, proc.returncode) |
class TraceTestCases(unittest.TestCase): |
@@ -22,23 +39,41 @@ class TraceTestCases(unittest.TestCase): |
os.environ.pop('GTEST_SHARD_INDEX', '') |
os.environ.pop('GTEST_TOTAL_SHARDS', '') |
- def test_simple(self): |
- target = os.path.join(ROOT_DIR, 'data', 'gtest_fake', 'gtest_fake.py') |
- cmd = [ |
- sys.executable, |
- os.path.join(ROOT_DIR, 'run_test_cases.py'), |
- '--no-dump', |
- target, |
- ] |
- logging.debug(' '.join(cmd)) |
- proc = subprocess.Popen( |
- cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) |
- # pylint is confused. |
- out, err = proc.communicate() or ('', '') |
- self.assertEquals(0, proc.returncode) |
+ def _check_results(self, expected_out_re, out, err): |
if sys.platform == 'win32': |
out = out.replace('\r\n', '\n') |
lines = out.splitlines() |
+ |
+ for index in range(len(expected_out_re)): |
+ line = lines.pop(0) |
+ self.assertTrue( |
+ re.match('^%s$' % expected_out_re[index], line), |
+ (index, expected_out_re[index], repr(line))) |
+ self.assertEquals([], lines) |
+ self.assertEquals('', err) |
+ |
+ def test_simple_pass(self): |
+ out, err, return_code = RunTest('gtest_fake_pass.py') |
+ |
+ self.assertEquals(0, return_code) |
+ |
+ expected_out_re = [ |
+ r'\[\d/\d\] \d\.\d\ds .+', |
+ r'\[\d/\d\] \d\.\d\ds .+', |
+ r'\[\d/\d\] \d\.\d\ds .+', |
+ re.escape('Success: 3 100.00%'), |
+ re.escape('Flaky: 0 0.00%'), |
+ re.escape('Fail: 0 0.00%'), |
+ r'\d+\.\ds Done running 3 tests with 3 executions. \d+\.\d test/s', |
+ ] |
+ |
+ self._check_results(expected_out_re, out, err) |
+ |
+ def test_simple_fail(self): |
+ out, err, return_code = RunTest('gtest_fake_fail.py') |
+ |
+ self.assertEquals(1, return_code) |
+ |
expected_out_re = [ |
r'\[\d/\d\] \d\.\d\ds .+', |
r'\[\d/\d\] \d\.\d\ds .+', |
@@ -49,11 +84,12 @@ class TraceTestCases(unittest.TestCase): |
re.escape('Note: Google Test filter = Baz.Fail'), |
r'', |
] + [ |
- re.escape(l) for l in gtest_fake.get_test_output('Baz.Fail').splitlines() |
+ re.escape(l) for l in |
+ gtest_fake_base.get_test_output('Baz.Fail').splitlines() |
] + [ |
'', |
] + [ |
- re.escape(l) for l in gtest_fake.get_footer(1).splitlines() |
+ re.escape(l) for l in gtest_fake_base.get_footer(1, 1).splitlines() |
] + [ |
'', |
re.escape('Success: 3 75.00%'), |
@@ -61,13 +97,7 @@ class TraceTestCases(unittest.TestCase): |
re.escape('Fail: 1 25.00%'), |
r'\d+\.\ds Done running 4 tests with 6 executions. \d+\.\d test/s', |
] |
- for index in range(len(expected_out_re)): |
- line = lines.pop(0) |
- self.assertTrue( |
- re.match('^%s$' % expected_out_re[index], line), |
- (index, expected_out_re[index], repr(line))) |
- self.assertEquals([], lines) |
- self.assertEquals('', err) |
+ self._check_results(expected_out_re, out, err) |
if __name__ == '__main__': |