OLD | NEW |
1 # Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 # Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
2 # for details. All rights reserved. Use of this source code is governed by a | 2 # for details. All rights reserved. Use of this source code is governed by a |
3 # BSD-style license that can be found in the LICENSE file. | 3 # BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 """Common TestCase subclasses used to define a single test.""" | 5 """Common TestCase subclasses used to define a single test.""" |
6 | 6 |
7 import os | 7 import os |
8 import tempfile | 8 import tempfile |
9 | 9 |
10 import test | 10 import test |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 if self.kind == 'compile-time error': | 86 if self.kind == 'compile-time error': |
87 return True | 87 return True |
88 if self.kind == 'runtime error': | 88 if self.kind == 'runtime error': |
89 return True | 89 return True |
90 if self.kind == 'static type error': | 90 if self.kind == 'static type error': |
91 return self.run_arch.HasFatalTypeErrors() | 91 return self.run_arch.HasFatalTypeErrors() |
92 return False | 92 return False |
93 | 93 |
94 | 94 |
95 class BrowserTestCase(StandardTestCase): | 95 class BrowserTestCase(StandardTestCase): |
96 """A test case that executes inside a browser (or DumpRenderTree).""" | 96 """A test case that executes inside DumpRenderTree.""" |
97 | 97 |
98 def __init__(self, context, path, filename, | 98 def __init__(self, context, path, filename, |
99 fatal_static_type_errors, mode, arch, component, vm_options=None)
: | 99 fatal_static_type_errors, mode, arch, component, vm_options=None)
: |
100 super(BrowserTestCase, self).__init__( | 100 super(BrowserTestCase, self).__init__( |
101 context, path, filename, mode, arch, component, vm_options) | 101 context, path, filename, mode, arch, component, vm_options) |
102 self.fatal_static_type_errors = fatal_static_type_errors | 102 self.fatal_static_type_errors = fatal_static_type_errors |
103 | 103 |
104 def Run(self): | 104 def Run(self): |
105 """Optionally compiles and then runs the specified test.""" | 105 """Optionally compiles and then runs the specified test.""" |
106 command = self.run_arch.GetCompileCommand(self.fatal_static_type_errors) | 106 command = self.run_arch.GetCompileCommand(self.fatal_static_type_errors) |
107 if command: | 107 if command: |
108 # We change the directory where dartc will be launched because | 108 # We change the directory where dartc will be launched because |
109 # it is not predictable on the location of the compiled file. In | 109 # it is not predictable on the location of the compiled file. In |
110 # case the test is a web test, we make sure the app file is not | 110 # case the test is a web test, we make sure the app file is not |
111 # in a subdirectory. | 111 # in a subdirectory. |
112 cwd = None | 112 cwd = None |
113 if self.run_arch.is_web_test: cwd = self.run_arch.temp_dir | 113 if self.run_arch.is_web_test: cwd = self.run_arch.temp_dir |
114 command = command[:1] + self.context.flags + command[1:] | 114 command = command[:1] + self.context.flags + command[1:] |
115 test_output = self.RunCommand(command, cwd=cwd, cleanup=False) | 115 test_output = self.RunCommand(command, cwd=cwd, cleanup=False) |
116 | 116 |
117 # If errors were found, fail fast and show compile errors: | 117 # If errors were found, fail fast and show compile errors: |
118 if test_output.output.exit_code != 0: | 118 if test_output.output.exit_code != 0: |
119 return test_output | 119 return test_output |
120 | 120 |
121 command = self.run_arch.GetRunCommand() | 121 command = self.run_arch.GetRunCommand() |
122 test_output = self.RunCommand(command) | 122 test_output = self.RunCommand(command) |
123 # The return value of DumpRenderedTree does not indicate test failing, but | 123 # The return value of DumpRenderedTree does not indicate test failing, but |
124 # the output does. | 124 # the output does. |
125 if self.run_arch.HasFailed(test_output.output.stdout): | 125 if self.run_arch.HasFailed(test_output.output.stdout): |
126 test_output.output.exit_code = 1 | 126 test_output.output.exit_code = 1 |
127 | 127 |
128 return test_output | 128 return test_output |
129 | 129 |
130 | 130 |
(...skipping 30 matching lines...) Expand all Loading... |
161 self.filename] | 161 self.filename] |
162 | 162 |
163 return cmd | 163 return cmd |
164 | 164 |
165 def GetName(self): | 165 def GetName(self): |
166 return self.path[-1] | 166 return self.path[-1] |
167 | 167 |
168 def Cleanup(self): | 168 def Cleanup(self): |
169 if not self.context.keep_temporary_files: | 169 if not self.context.keep_temporary_files: |
170 self.run_arch.Cleanup() | 170 self.run_arch.Cleanup() |
OLD | NEW |