| Index: tools/testing/test_case.py
|
| diff --git a/tools/testing/test_case.py b/tools/testing/test_case.py
|
| deleted file mode 100644
|
| index 5d3f8c226fa3b0556a9c5eb6e15a182856767281..0000000000000000000000000000000000000000
|
| --- a/tools/testing/test_case.py
|
| +++ /dev/null
|
| @@ -1,178 +0,0 @@
|
| -# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
|
| -# for details. All rights reserved. Use of this source code is governed by a
|
| -# BSD-style license that can be found in the LICENSE file.
|
| -
|
| -"""Common TestCase subclasses used to define a single test."""
|
| -
|
| -import os
|
| -import tempfile
|
| -
|
| -import test
|
| -from testing import architecture
|
| -
|
| -
|
| -class Error(Exception):
|
| - pass
|
| -
|
| -
|
| -class StandardTestCase(test.TestCase):
|
| - """A test case defined by a *Test.dart file."""
|
| -
|
| - def __init__(self, context, path, filename, mode, arch, component,
|
| - vm_options=None):
|
| - super(StandardTestCase, self).__init__(context, path)
|
| - self.filename = filename
|
| - self.mode = mode
|
| - self.arch = arch
|
| - self.component = component
|
| - self.run_arch = architecture.GetArchitecture(self.arch, self.mode,
|
| - self.component,
|
| - self.filename)
|
| - for flag in context.flags:
|
| - self.run_arch.vm_options.append(flag)
|
| -
|
| - if vm_options:
|
| - for flag in vm_options:
|
| - self.run_arch.vm_options.append(flag)
|
| -
|
| - def IsNegative(self):
|
| - return self.GetName().endswith('NegativeTest')
|
| -
|
| - def GetLabel(self):
|
| - return '%s%s %s %s' % (self.mode, self.arch, self.component,
|
| - '/'.join(self.path))
|
| -
|
| - def GetCommand(self):
|
| - return self.run_arch.GetRunCommand()
|
| -
|
| - def GetName(self):
|
| - return self.path[-1]
|
| -
|
| - def GetPath(self):
|
| - return os.path.dirname(self.filename)
|
| -
|
| - def GetSource(self):
|
| - return file(self.filename).read()
|
| -
|
| - def Cleanup(self):
|
| - # TODO(ngeoffray): We run out of space on the build bots for these tests if
|
| - # the temp directories are not removed right after running the test.
|
| - if not self.context.keep_temporary_files:
|
| - self.run_arch.Cleanup()
|
| -
|
| -
|
| -class MultiTestCase(StandardTestCase):
|
| - """Multiple test cases defined within a single *Test.dart file."""
|
| -
|
| - def __init__(self, context, path, filename, kind, mode, arch, component,
|
| - vm_options = None):
|
| - super(MultiTestCase, self).__init__(context, path, filename, mode, arch,
|
| - component, vm_options)
|
| - self.kind = kind
|
| -
|
| - def GetCommand(self):
|
| - """Returns a commandline to execute to perform the test."""
|
| - return self.run_arch.GetRunCommand(
|
| - fatal_static_type_errors=(self.kind == 'static type error'))
|
| -
|
| - def IsNegative(self):
|
| - """Determine if this is a negative test. by looking at @ directives.
|
| -
|
| - A negative test is considered to pas if its outcome is FAIL.
|
| -
|
| - Returns:
|
| - True if this is a negative test.
|
| - """
|
| - if self.kind == 'compile-time error':
|
| - return True
|
| - if self.kind == 'runtime error':
|
| - return True
|
| - if self.kind == 'static type error':
|
| - return self.run_arch.HasFatalTypeErrors()
|
| - return False
|
| -
|
| -
|
| -class BrowserTestCase(StandardTestCase):
|
| - """A test case that executes inside DumpRenderTree or a browser."""
|
| -
|
| - def __init__(self, context, path, filename,
|
| - fatal_static_type_errors, mode, arch, component, vm_options=None):
|
| - super(BrowserTestCase, self).__init__(
|
| - context, path, filename, mode, arch, component, vm_options)
|
| - self.fatal_static_type_errors = fatal_static_type_errors
|
| -
|
| - def Run(self):
|
| - """Optionally compiles and then runs the specified test."""
|
| - command = self.run_arch.GetCompileCommand(self.fatal_static_type_errors)
|
| - if command:
|
| - # We change the directory where dartc will be launched because
|
| - # it is not predictable on the location of the compiled file. In
|
| - # case the test is a web test, we make sure the app file is not
|
| - # in a subdirectory.
|
| - cwd = None
|
| - if self.run_arch.is_web_test: cwd = self.run_arch.temp_dir
|
| - command = command[:1] + self.context.flags + command[1:]
|
| - test_output = self.RunCommand(command, cwd=cwd, cleanup=False)
|
| -
|
| - # If errors were found, fail fast and show compile errors:
|
| - if test_output.output.exit_code != 0:
|
| - return test_output
|
| -
|
| - command = self.run_arch.GetRunCommand()
|
| - # Don't clean up just in case test turned out flaky and we want to retry.
|
| - test_output = self.RunCommand(command, cleanup=False)
|
| - # The return value of DumpRenderedTree does not indicate test failing, but
|
| - # the output does.
|
| - if self.run_arch.HasFailed(test_output.output.stdout):
|
| - test_output.output.exit_code = 1
|
| - # DumpRenderTree is sometimes flaky in xvfb-run, try again in that case.
|
| - if (self.run_arch.WasFlakyDrt(test_output.output.stderr)):
|
| - print "\nFlaky Gtw-WARNING error found, trying again..."
|
| - test_output = self.RunCommand(command, cleanup=False)
|
| - if self.run_arch.HasFailed(test_output.output.stdout):
|
| - test_output.output.exit_code = 1
|
| - self.Cleanup();
|
| -
|
| - return test_output
|
| -
|
| -
|
| -class CompilationTestCase(test.TestCase):
|
| - """Run the dartc compiler on a given top level .dart file."""
|
| -
|
| - def __init__(self, path, context, filename, mode, arch, component):
|
| - super(CompilationTestCase, self).__init__(context, path)
|
| - self.filename = filename
|
| - self.mode = mode
|
| - self.arch = arch
|
| - self.component = component
|
| - self.run_arch = architecture.GetArchitecture(self.arch,
|
| - self.mode,
|
| - self.component,
|
| - self.filename)
|
| - self.temp_dir = tempfile.mkdtemp(prefix='dartc-output-')
|
| -
|
| - def IsNegative(self):
|
| - return False
|
| -
|
| - def GetLabel(self):
|
| - return '%s/%s %s %s' % (self.mode, self.arch, self.component,
|
| - '/'.join(self.path))
|
| -
|
| - def GetCommand(self):
|
| - """Returns a command line to run the test."""
|
| - cmd = self.context.GetDartC(self.mode, self.arch)
|
| - cmd += self.context.flags
|
| - cmd += ['-check-only',
|
| - '-fatal-type-errors',
|
| - '-Werror',
|
| - '-out', self.temp_dir,
|
| - self.filename]
|
| -
|
| - return cmd
|
| -
|
| - def GetName(self):
|
| - return self.path[-1]
|
| -
|
| - def Cleanup(self):
|
| - if not self.context.keep_temporary_files:
|
| - self.run_arch.Cleanup()
|
|
|