Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(226)

Unified Diff: dart/tools/test.py

Issue 8408002: Add a new variable environment for testing, to replace the misusage of 'arch'. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « dart/tests/stub-generator/testcfg.py ('k') | dart/tools/testing/architecture.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: dart/tools/test.py
===================================================================
--- dart/tools/test.py (revision 991)
+++ dart/tools/test.py (working copy)
@@ -417,10 +417,11 @@
self.context = context
self.duration = None
self.arch = []
+ self.component = []
def IsBatchable(self):
if self.context.use_batch:
- if self.arch and 'dartc' in self.arch:
+ if self.component and 'dartc' in self.component:
return True
return False
@@ -530,11 +531,12 @@
filename.close()
return self.config
- def ListTests(self, current_path, path, context, mode, arch):
+ def ListTests(self, current_path, path, context, mode, arch, component):
return self.GetConfiguration(context).ListTests(current_path,
path,
mode,
- arch)
+ arch,
+ component)
def GetTestStatus(self, context, sections, defs):
self.GetConfiguration(context).GetTestStatus(sections, defs)
@@ -547,14 +549,14 @@
super(LiteralTestSuite, self).__init__('root')
self.tests = tests
- def ListTests(self, current_path, path, context, mode, arch):
+ def ListTests(self, current_path, path, context, mode, arch, component):
name = path[0]
result = []
for test in self.tests:
test_name = test.GetName()
if name.match(test_name):
full_path = current_path + [test_name]
- result += test.ListTests(full_path, path, context, mode, arch)
+ result += test.ListTests(full_path, path, context, mode, arch, component)
return result
def GetTestStatus(self, context, sections, defs):
@@ -598,9 +600,9 @@
else:
return path
- def GetDart(self, mode, arch):
+ def GetDart(self, mode, arch, component):
"""Returns the path to the Dart test runner (executes the .dart file)."""
- if arch == 'dartc':
+ if component == 'dartc':
command = [os.path.abspath(
os.path.join(self.GetBuildRoot(mode, arch),
'compiler', 'bin', 'dartc_test'))]
@@ -743,7 +745,6 @@
def Evaluate(self, env, defs):
"""Evaluates expression in the .status file. e.g. ($arch == ia32)."""
-
if self.op == '||' or self.op == ',':
return self.left.Evaluate(env, defs) or self.right.Evaluate(env, defs)
elif self.op == 'if':
@@ -808,7 +809,7 @@
"""Lexical analysis of an expression in a .status file.
Example:
- [ $mode == debug && ($arch == chromium || $arch == dartc) ]
+ [ $mode == debug && ($component == chromium || $component == dartc) ]
Args:
None.
@@ -983,7 +984,7 @@
Args:
cases: list of TestCase objects to classify.
env: dictionary containing values for 'mode',
- 'system', 'arch' and 'checked'.
+ 'system', 'component', 'arch' and 'checked'.
Returns:
A triplet of (result, rules, expected_outcomes).
@@ -1153,7 +1154,7 @@
result.add_option(
'--arch',
help='The architecture to run tests for',
- metavar='[all,ia32,x64,simarm,arm,dartc]',
+ metavar='[all,ia32,x64,simarm,arm]',
default=ARCH_GUESS)
result.add_option(
'--os',
@@ -1186,7 +1187,7 @@
action='store_true')
result.add_option(
'--batch',
- help='Run multiple tests for dartc architecture in a single vm',
+ help='Run multiple tests for dartc component in a single vm',
choices=['true', 'false'],
default='true',
type='choice')
@@ -1195,6 +1196,12 @@
help='Invoke dart compiler with --optimize flag',
default=False,
action='store_true')
+ result.add_option(
+ '-c', '--component',
+ help='The component to test against '
+ '(most, vm, dartc, chromium, dartium)',
+ metavar='[most,vm,dartc,chromium,dartium]',
+ default='vm')
return result
@@ -1204,29 +1211,43 @@
options.arch = 'ia32,x64,simarm'
if options.mode == 'all':
options.mode = 'debug,release'
+ if options.component == 'most':
+ options.component = 'vm,dartc'
+
+ if 'dartc' in options.arch:
+ options.component = 'dartc'
+ if 'dartium' in options.arch:
+ options.component = 'dartium'
+ if 'chromium' in options.arch:
+ options.component = 'chromium'
+
# By default we run with a higher timeout setting in when running on
# a simulated architecture and in debug mode.
if not options.timeout:
options.timeout = TIMEOUT_SECS
- if 'dartc' in options.arch:
+ if 'dartc' in options.component:
options.timeout *= 4
- elif 'chromium' in options.arch:
+ elif 'chromium' in options.component:
options.timeout *= 4
- elif 'dartium' in options.arch:
+ elif 'dartium' in options.component:
options.timeout *= 4
elif 'debug' in options.mode:
options.timeout *= 2
options.mode = options.mode.split(',')
options.arch = options.arch.split(',')
+ options.component = options.component.split(',')
for mode in options.mode:
if not mode in ['debug', 'release']:
print 'Unknown mode %s' % mode
return False
for arch in options.arch:
- if not arch in ['ia32', 'x64', 'simarm', 'arm', 'dartc', 'dartium',
- 'chromium']:
+ if not arch in ['ia32', 'x64', 'simarm', 'arm']:
print 'Unknown arch %s' % arch
return False
+ for component in options.component:
+ if not component in ['vm', 'dartc', 'chromium', 'dartium']:
+ print 'Unknown component %s' % component
+ return False
options.flags = []
options.flags.append('--ignore-unrecognized-flags')
if options.checked:
@@ -1423,22 +1444,24 @@
for path in paths:
for mode in options.mode:
for arch in options.arch:
- env = {
- 'mode': mode,
- 'system': utils.GuessOS(),
- 'arch': arch,
- 'checked': options.checked
- }
- test_list = root.ListTests([], path, context, mode, arch)
- (cases, unused_rules, unused_outcomes) = config.ClassifyTests(
- test_list, env)
- if globally_unused_rules is None:
- globally_unused_rules = set(unused_rules)
- else:
- globally_unused_rules = (
- globally_unused_rules.intersection(unused_rules))
- all_cases += cases
- all_unused.append(unused_rules)
+ for component in options.component:
+ env = {
+ 'mode': mode,
+ 'system': utils.GuessOS(),
+ 'arch': arch,
+ 'component': component,
+ 'checked': options.checked
+ }
+ test_list = root.ListTests([], path, context, mode, arch, component)
+ (cases, unused_rules, unused_outcomes) = config.ClassifyTests(
+ test_list, env)
+ if globally_unused_rules is None:
+ globally_unused_rules = set(unused_rules)
+ else:
+ globally_unused_rules = (
+ globally_unused_rules.intersection(unused_rules))
+ all_cases += cases
+ all_unused.append(unused_rules)
if options.report:
PrintReport(all_cases)
« no previous file with comments | « dart/tests/stub-generator/testcfg.py ('k') | dart/tools/testing/architecture.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698