| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 import json | 6 import json |
| 7 import logging | 7 import logging |
| 8 import os | 8 import os |
| 9 import re | 9 import re |
| 10 import subprocess | 10 import subprocess |
| 11 import sys | 11 import sys |
| 12 import tempfile | 12 import tempfile |
| 13 import unittest | 13 import unittest |
| 14 | 14 |
| 15 import trace_inputs | 15 import trace_inputs |
| 16 | 16 |
| 17 FILE_PATH = os.path.realpath(unicode(os.path.abspath(__file__))) | 17 FILE_PATH = os.path.realpath(unicode(os.path.abspath(__file__))) |
| 18 ROOT_DIR = os.path.dirname(FILE_PATH) | 18 ROOT_DIR = os.path.dirname(FILE_PATH) |
| 19 TARGET_PATH = os.path.join(ROOT_DIR, 'data', 'gtest_fake', 'gtest_fake.py') | 19 TARGET_UTIL_PATH = os.path.join(ROOT_DIR, 'data', 'gtest_fake', |
| 20 'gtest_fake_base.py') |
| 21 TARGET_PATH = os.path.join(ROOT_DIR, 'data', 'gtest_fake', 'gtest_fake_fail.py') |
| 20 | 22 |
| 21 | 23 |
| 22 class TraceTestCases(unittest.TestCase): | 24 class TraceTestCases(unittest.TestCase): |
| 23 def setUp(self): | 25 def setUp(self): |
| 24 self.temp_file = None | 26 self.temp_file = None |
| 25 | 27 |
| 26 self.initial_cwd = ROOT_DIR | 28 self.initial_cwd = ROOT_DIR |
| 27 if sys.platform == 'win32': | 29 if sys.platform == 'win32': |
| 28 # Windows has no kernel mode concept of current working directory. | 30 # Windows has no kernel mode concept of current working directory. |
| 29 self.initial_cwd = None | 31 self.initial_cwd = None |
| (...skipping 26 matching lines...) Expand all Loading... |
| 56 u'root': { | 58 u'root': { |
| 57 u'children': [], | 59 u'children': [], |
| 58 u'command': [ | 60 u'command': [ |
| 59 self.executable, | 61 self.executable, |
| 60 TARGET_PATH, | 62 TARGET_PATH, |
| 61 u'--gtest_filter=%s' % test_case, | 63 u'--gtest_filter=%s' % test_case, |
| 62 ], | 64 ], |
| 63 u'executable': self.real_executable, | 65 u'executable': self.real_executable, |
| 64 u'files': [ | 66 u'files': [ |
| 65 { | 67 { |
| 66 u'path': os.path.join(u'data', 'gtest_fake', 'gtest_fake.py'), | 68 u'path': os.path.join(u'data', 'gtest_fake', |
| 69 'gtest_fake_base.py'), |
| 70 u'size': os.stat(TARGET_UTIL_PATH).st_size, |
| 71 }, |
| 72 { |
| 73 u'path': os.path.join(u'data', 'gtest_fake', |
| 74 'gtest_fake_fail.py'), |
| 67 u'size': os.stat(TARGET_PATH).st_size, | 75 u'size': os.stat(TARGET_PATH).st_size, |
| 68 }, | 76 }, |
| 69 ], | 77 ], |
| 70 u'initial_cwd': self.initial_cwd, | 78 u'initial_cwd': self.initial_cwd, |
| 71 }, | 79 }, |
| 72 }, | 80 }, |
| 73 u'valid': True, | 81 u'valid': True, |
| 74 u'variables': { | 82 u'variables': { |
| 75 u'isolate_dependency_tracked': [ | 83 u'isolate_dependency_tracked': [ |
| 76 u'<(PRODUCT_DIR)/gtest_fake/gtest_fake.py', | 84 u'<(PRODUCT_DIR)/gtest_fake/gtest_fake_base.py', |
| 85 u'<(PRODUCT_DIR)/gtest_fake/gtest_fake_fail.py', |
| 77 ], | 86 ], |
| 78 }, | 87 }, |
| 79 } | 88 } |
| 80 | 89 |
| 81 def _strip_result(self, result): | 90 def _strip_result(self, result): |
| 82 """Strips mutable information from a flattened test case Results.""" | 91 """Strips mutable information from a flattened test case Results.""" |
| 83 self.assertTrue(result.pop('duration') > 0.) | 92 self.assertTrue(result.pop('duration') > 0.) |
| 84 self.assertTrue(len(result.pop('output')) > 10) | 93 self.assertTrue(len(result.pop('output')) > 10) |
| 85 def strip_pid(proc): | 94 def strip_pid(proc): |
| 86 self.assertTrue(proc.pop('pid') > 100) | 95 self.assertTrue(proc.pop('pid') > 100) |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 146 # Trim off 'duration' and 'output', they don't have a constant value. | 155 # Trim off 'duration' and 'output', they don't have a constant value. |
| 147 for value in result.itervalues(): | 156 for value in result.itervalues(): |
| 148 self._strip_result(value) | 157 self._strip_result(value) |
| 149 self.assertEquals(expected_json, result) | 158 self.assertEquals(expected_json, result) |
| 150 | 159 |
| 151 | 160 |
| 152 if __name__ == '__main__': | 161 if __name__ == '__main__': |
| 153 VERBOSE = '-v' in sys.argv | 162 VERBOSE = '-v' in sys.argv |
| 154 logging.basicConfig(level=logging.DEBUG if VERBOSE else logging.ERROR) | 163 logging.basicConfig(level=logging.DEBUG if VERBOSE else logging.ERROR) |
| 155 unittest.main() | 164 unittest.main() |
| OLD | NEW |