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

Side by Side Diff: tools/testrunner/local/testsuite.py

Issue 22715004: Version 3.20.15 (Closed) Base URL: https://v8.googlecode.com/svn/trunk
Patch Set: Add TypedArray API and correctness patches r16033 and r16084 Created 7 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « tools/testrunner/local/statusfile.py ('k') | tools/testrunner/local/verbose.py » ('j') | 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 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 return "d8" 59 return "d8"
60 60
61 def suffix(self): 61 def suffix(self):
62 return ".js" 62 return ".js"
63 63
64 def status_file(self): 64 def status_file(self):
65 return "%s/%s.status" % (self.root, self.name) 65 return "%s/%s.status" % (self.root, self.name)
66 66
67 # Used in the status file and for stdout printing. 67 # Used in the status file and for stdout printing.
68 def CommonTestName(self, testcase): 68 def CommonTestName(self, testcase):
69 if utils.IsWindows(): 69 return testcase.path
70 return testcase.path.replace("\\", "/")
71 else:
72 return testcase.path
73 70
74 def ListTests(self, context): 71 def ListTests(self, context):
75 raise NotImplementedError 72 raise NotImplementedError
76 73
77 def VariantFlags(self): 74 def VariantFlags(self):
78 return None 75 return None
79 76
80 def DownloadData(self): 77 def DownloadData(self):
81 pass 78 pass
82 79
83 def ReadStatusFile(self, variables): 80 def ReadStatusFile(self, variables):
84 (self.rules, self.wildcards) = \ 81 (self.rules, self.wildcards) = \
85 statusfile.ReadStatusFile(self.status_file(), variables) 82 statusfile.ReadStatusFile(self.status_file(), variables)
86 83
87 def ReadTestCases(self, context): 84 def ReadTestCases(self, context):
88 self.tests = self.ListTests(context) 85 self.tests = self.ListTests(context)
89 86
90 @staticmethod 87 def FilterTestCasesByStatus(self, warn_unused_rules):
91 def _FilterFlaky(flaky, mode):
92 return (mode == "run" and not flaky) or (mode == "skip" and flaky)
93
94 def FilterTestCasesByStatus(self, warn_unused_rules, flaky_tests="dontcare"):
95 filtered = [] 88 filtered = []
96 used_rules = set() 89 used_rules = set()
97 for t in self.tests: 90 for t in self.tests:
98 flaky = False
99 testname = self.CommonTestName(t) 91 testname = self.CommonTestName(t)
92 if utils.IsWindows():
93 testname = testname.replace("\\", "/")
100 if testname in self.rules: 94 if testname in self.rules:
101 used_rules.add(testname) 95 used_rules.add(testname)
102 # Even for skipped tests, as the TestCase object stays around and 96 outcomes = self.rules[testname]
103 # PrintReport() uses it. 97 t.outcomes = outcomes # Even for skipped tests, as the TestCase
104 t.outcomes = self.rules[testname] 98 # object stays around and PrintReport() uses it.
105 if statusfile.DoSkip(t.outcomes): 99 if statusfile.DoSkip(outcomes):
106 continue # Don't add skipped tests to |filtered|. 100 continue # Don't add skipped tests to |filtered|.
107 flaky = statusfile.IsFlaky(t.outcomes) 101 if len(self.wildcards) != 0:
108 skip = False 102 skip = False
109 for rule in self.wildcards: 103 for rule in self.wildcards:
110 assert rule[-1] == '*' 104 assert rule[-1] == '*'
111 if testname.startswith(rule[:-1]): 105 if testname.startswith(rule[:-1]):
112 used_rules.add(rule) 106 used_rules.add(rule)
113 t.outcomes = self.wildcards[rule] 107 outcomes = self.wildcards[rule]
114 if statusfile.DoSkip(t.outcomes): 108 t.outcomes = outcomes
115 skip = True 109 if statusfile.DoSkip(outcomes):
116 break # "for rule in self.wildcards" 110 skip = True
117 flaky = flaky or statusfile.IsFlaky(t.outcomes) 111 break # "for rule in self.wildcards"
118 if skip or self._FilterFlaky(flaky, flaky_tests): 112 if skip: continue # "for t in self.tests"
119 continue # "for t in self.tests"
120 filtered.append(t) 113 filtered.append(t)
121 self.tests = filtered 114 self.tests = filtered
122 115
123 if not warn_unused_rules: 116 if not warn_unused_rules:
124 return 117 return
125 118
126 for rule in self.rules: 119 for rule in self.rules:
127 if rule not in used_rules: 120 if rule not in used_rules:
128 print("Unused rule: %s -> %s" % (rule, self.rules[rule])) 121 print("Unused rule: %s -> %s" % (rule, self.rules[rule]))
129 for rule in self.wildcards: 122 for rule in self.wildcards:
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 def StripOutputForTransmit(self, testcase): 178 def StripOutputForTransmit(self, testcase):
186 if not self.HasUnexpectedOutput(testcase): 179 if not self.HasUnexpectedOutput(testcase):
187 testcase.output.stdout = "" 180 testcase.output.stdout = ""
188 testcase.output.stderr = "" 181 testcase.output.stderr = ""
189 182
190 def CalculateTotalDuration(self): 183 def CalculateTotalDuration(self):
191 self.total_duration = 0.0 184 self.total_duration = 0.0
192 for t in self.tests: 185 for t in self.tests:
193 self.total_duration += t.duration 186 self.total_duration += t.duration
194 return self.total_duration 187 return self.total_duration
OLDNEW
« no previous file with comments | « tools/testrunner/local/statusfile.py ('k') | tools/testrunner/local/verbose.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698