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

Side by Side Diff: tools/testrunner/objects/testcase.py

Issue 1753803003: [test] Remove dependent commands. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Format Created 4 years, 9 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 unified diff | Download patch
« no previous file with comments | « tools/testrunner/local/testsuite.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2012 the V8 project authors. All rights reserved. 1 # Copyright 2012 the V8 project authors. All rights reserved.
2 # Redistribution and use in source and binary forms, with or without 2 # Redistribution and use in source and binary forms, with or without
3 # modification, are permitted provided that the following conditions are 3 # modification, are permitted provided that the following conditions are
4 # met: 4 # met:
5 # 5 #
6 # * Redistributions of source code must retain the above copyright 6 # * Redistributions of source code must retain the above copyright
7 # notice, this list of conditions and the following disclaimer. 7 # notice, this list of conditions and the following disclaimer.
8 # * Redistributions in binary form must reproduce the above 8 # * Redistributions in binary form must reproduce the above
9 # copyright notice, this list of conditions and the following 9 # copyright notice, this list of conditions and the following
10 # disclaimer in the documentation and/or other materials provided 10 # disclaimer in the documentation and/or other materials provided
(...skipping 12 matching lines...) Expand all
23 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 23 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 27
28 28
29 from . import output 29 from . import output
30 30
31 class TestCase(object): 31 class TestCase(object):
32 def __init__(self, suite, path, variant='default', flags=None, 32 def __init__(self, suite, path, variant='default', flags=None,
33 dependency=None, override_shell=None): 33 override_shell=None):
34 self.suite = suite # TestSuite object 34 self.suite = suite # TestSuite object
35 self.path = path # string, e.g. 'div-mod', 'test-api/foo' 35 self.path = path # string, e.g. 'div-mod', 'test-api/foo'
36 self.flags = flags or [] # list of strings, flags specific to this test 36 self.flags = flags or [] # list of strings, flags specific to this test
37 self.variant = variant # name of the used testing variant 37 self.variant = variant # name of the used testing variant
38 self.dependency = dependency # |path| for testcase that must be run first
39 self.override_shell = override_shell 38 self.override_shell = override_shell
40 self.outcomes = set([]) 39 self.outcomes = set([])
41 self.output = None 40 self.output = None
42 self.id = None # int, used to map result back to TestCase instance 41 self.id = None # int, used to map result back to TestCase instance
43 self.duration = None # assigned during execution 42 self.duration = None # assigned during execution
44 self.run = 1 # The nth time this test is executed. 43 self.run = 1 # The nth time this test is executed.
45 44
46 def CopyAddingFlags(self, variant, flags): 45 def CopyAddingFlags(self, variant, flags):
47 copy = TestCase(self.suite, self.path, variant, self.flags + flags, 46 copy = TestCase(self.suite, self.path, variant, self.flags + flags,
48 self.dependency, self.override_shell) 47 self.override_shell)
49 copy.outcomes = self.outcomes 48 copy.outcomes = self.outcomes
50 return copy 49 return copy
51 50
52 def PackTask(self): 51 def PackTask(self):
53 """ 52 """
54 Extracts those parts of this object that are required to run the test 53 Extracts those parts of this object that are required to run the test
55 and returns them as a JSON serializable object. 54 and returns them as a JSON serializable object.
56 """ 55 """
57 assert self.id is not None 56 assert self.id is not None
58 return [self.suitename(), self.path, self.variant, self.flags, 57 return [self.suitename(), self.path, self.variant, self.flags,
59 self.dependency, self.override_shell, list(self.outcomes or []), 58 self.override_shell, list(self.outcomes or []),
60 self.id] 59 self.id]
61 60
62 @staticmethod 61 @staticmethod
63 def UnpackTask(task): 62 def UnpackTask(task):
64 """Creates a new TestCase object based on packed task data.""" 63 """Creates a new TestCase object based on packed task data."""
65 # For the order of the fields, refer to PackTask() above. 64 # For the order of the fields, refer to PackTask() above.
66 test = TestCase(str(task[0]), task[1], task[2], task[3], task[4], task[5]) 65 test = TestCase(str(task[0]), task[1], task[2], task[3], task[4])
67 test.outcomes = set(task[6]) 66 test.outcomes = set(task[5])
68 test.id = task[7] 67 test.id = task[6]
69 test.run = 1 68 test.run = 1
70 return test 69 return test
71 70
72 def SetSuiteObject(self, suites): 71 def SetSuiteObject(self, suites):
73 self.suite = suites[self.suite] 72 self.suite = suites[self.suite]
74 73
75 def PackResult(self): 74 def PackResult(self):
76 """Serializes the output of the TestCase after it has run.""" 75 """Serializes the output of the TestCase after it has run."""
77 self.suite.StripOutputForTransmit(self) 76 self.suite.StripOutputForTransmit(self)
78 return [self.id, self.output.Pack(), self.duration] 77 return [self.id, self.output.Pack(), self.duration]
(...skipping 15 matching lines...) Expand all
94 return self.override_shell 93 return self.override_shell
95 return self.suite.shell() 94 return self.suite.shell()
96 95
97 def __getstate__(self): 96 def __getstate__(self):
98 """Representation to pickle test cases. 97 """Representation to pickle test cases.
99 98
100 The original suite won't be sent beyond process boundaries. Instead 99 The original suite won't be sent beyond process boundaries. Instead
101 send the name only and retrieve a process-local suite later. 100 send the name only and retrieve a process-local suite later.
102 """ 101 """
103 return dict(self.__dict__, suite=self.suite.name) 102 return dict(self.__dict__, suite=self.suite.name)
OLDNEW
« no previous file with comments | « tools/testrunner/local/testsuite.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698