| 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 |
| 11 from testing import architecture | 11 from testing import architecture |
| 12 | 12 |
| 13 | 13 |
| 14 class Error(Exception): | 14 class Error(Exception): |
| 15 pass | 15 pass |
| 16 | 16 |
| 17 | 17 |
| 18 class StandardTestCase(test.TestCase): | 18 class StandardTestCase(test.TestCase): |
| 19 """A test case defined by a *Test.dart file.""" | 19 """A test case defined by a *Test.dart file.""" |
| 20 | 20 |
| 21 def __init__(self, context, path, filename, mode, arch, component, | 21 def __init__(self, context, path, filename, mode, arch, component, |
| 22 vm_options=None): | 22 vm_options=None): |
| 23 super(StandardTestCase, self).__init__(context, path) | 23 super(StandardTestCase, self).__init__(context, path) |
| 24 self.filename = filename | 24 self.filename = filename |
| 25 self.mode = mode | 25 self.mode = mode |
| 26 self.arch = arch | 26 self.arch = arch |
| 27 self.component = component | 27 self.component = component |
| 28 self.run_arch = architecture.GetArchitecture(self.arch, self.mode, | 28 self.run_arch = architecture.GetArchitecture(self.arch, self.mode, |
| 29 self.component, | 29 self.component, |
| 30 self.filename) | 30 self.filename, |
| 31 self.context.flags) |
| 31 for flag in context.flags: | 32 for flag in context.flags: |
| 32 self.run_arch.vm_options.append(flag) | 33 self.run_arch.vm_options.append(flag) |
| 33 | 34 |
| 34 if vm_options: | 35 if vm_options: |
| 35 for flag in vm_options: | 36 for flag in vm_options: |
| 36 self.run_arch.vm_options.append(flag) | 37 self.run_arch.vm_options.append(flag) |
| 37 | 38 |
| 38 def IsNegative(self): | 39 def IsNegative(self): |
| 39 return self.GetName().endswith('NegativeTest') | 40 return self.GetName().endswith('NegativeTest') |
| 40 | 41 |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 86 if self.kind == 'compile-time error': | 87 if self.kind == 'compile-time error': |
| 87 return True | 88 return True |
| 88 if self.kind == 'runtime error': | 89 if self.kind == 'runtime error': |
| 89 return True | 90 return True |
| 90 if self.kind == 'static type error': | 91 if self.kind == 'static type error': |
| 91 return self.run_arch.HasFatalTypeErrors() | 92 return self.run_arch.HasFatalTypeErrors() |
| 92 return False | 93 return False |
| 93 | 94 |
| 94 | 95 |
| 95 class BrowserTestCase(StandardTestCase): | 96 class BrowserTestCase(StandardTestCase): |
| 96 """A test case that executes inside DumpRenderTree.""" | 97 """A test case that executes inside DumpRenderTree or a browser.""" |
| 97 | 98 |
| 98 def __init__(self, context, path, filename, | 99 def __init__(self, context, path, filename, |
| 99 fatal_static_type_errors, mode, arch, component, vm_options=None)
: | 100 fatal_static_type_errors, mode, arch, component, vm_options=None)
: |
| 100 super(BrowserTestCase, self).__init__( | 101 super(BrowserTestCase, self).__init__( |
| 101 context, path, filename, mode, arch, component, vm_options) | 102 context, path, filename, mode, arch, component, vm_options) |
| 102 self.fatal_static_type_errors = fatal_static_type_errors | 103 self.fatal_static_type_errors = fatal_static_type_errors |
| 103 | 104 |
| 104 def Run(self): | 105 def Run(self): |
| 105 """Optionally compiles and then runs the specified test.""" | 106 """Optionally compiles and then runs the specified test.""" |
| 106 command = self.run_arch.GetCompileCommand(self.fatal_static_type_errors) | 107 command = self.run_arch.GetCompileCommand(self.fatal_static_type_errors) |
| (...skipping 26 matching lines...) Expand all Loading... |
| 133 | 134 |
| 134 def __init__(self, path, context, filename, mode, arch, component): | 135 def __init__(self, path, context, filename, mode, arch, component): |
| 135 super(CompilationTestCase, self).__init__(context, path) | 136 super(CompilationTestCase, self).__init__(context, path) |
| 136 self.filename = filename | 137 self.filename = filename |
| 137 self.mode = mode | 138 self.mode = mode |
| 138 self.arch = arch | 139 self.arch = arch |
| 139 self.component = component | 140 self.component = component |
| 140 self.run_arch = architecture.GetArchitecture(self.arch, | 141 self.run_arch = architecture.GetArchitecture(self.arch, |
| 141 self.mode, | 142 self.mode, |
| 142 self.component, | 143 self.component, |
| 143 self.filename) | 144 self.filename, |
| 145 self.context.flags) |
| 144 self.temp_dir = tempfile.mkdtemp(prefix='dartc-output-') | 146 self.temp_dir = tempfile.mkdtemp(prefix='dartc-output-') |
| 145 | 147 |
| 146 def IsNegative(self): | 148 def IsNegative(self): |
| 147 return False | 149 return False |
| 148 | 150 |
| 149 def GetLabel(self): | 151 def GetLabel(self): |
| 150 return '%s/%s %s %s' % (self.mode, self.arch, self.component, | 152 return '%s/%s %s %s' % (self.mode, self.arch, self.component, |
| 151 '/'.join(self.path)) | 153 '/'.join(self.path)) |
| 152 | 154 |
| 153 def GetCommand(self): | 155 def GetCommand(self): |
| 154 """Returns a command line to run the test.""" | 156 """Returns a command line to run the test.""" |
| 155 cmd = self.context.GetDartC(self.mode, self.arch) | 157 cmd = self.context.GetDartC(self.mode, self.arch) |
| 156 cmd += self.context.flags | 158 cmd += self.context.flags |
| 157 cmd += ['-check-only', | 159 cmd += ['-check-only', |
| 158 '-fatal-type-errors', | 160 '-fatal-type-errors', |
| 159 '-Werror', | 161 '-Werror', |
| 160 '-out', self.temp_dir, | 162 '-out', self.temp_dir, |
| 161 self.filename] | 163 self.filename] |
| 162 | 164 |
| 163 return cmd | 165 return cmd |
| 164 | 166 |
| 165 def GetName(self): | 167 def GetName(self): |
| 166 return self.path[-1] | 168 return self.path[-1] |
| 167 | 169 |
| 168 def Cleanup(self): | 170 def Cleanup(self): |
| 169 if not self.context.keep_temporary_files: | 171 if not self.context.keep_temporary_files: |
| 170 self.run_arch.Cleanup() | 172 self.run_arch.Cleanup() |
| OLD | NEW |