| OLD | NEW |
| 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 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 86 (self.rules, self.wildcards) = \ | 86 (self.rules, self.wildcards) = \ |
| 87 statusfile.ReadStatusFile(self.status_file(), variables) | 87 statusfile.ReadStatusFile(self.status_file(), variables) |
| 88 | 88 |
| 89 def ReadTestCases(self, context): | 89 def ReadTestCases(self, context): |
| 90 self.tests = self.ListTests(context) | 90 self.tests = self.ListTests(context) |
| 91 | 91 |
| 92 @staticmethod | 92 @staticmethod |
| 93 def _FilterFlaky(flaky, mode): | 93 def _FilterFlaky(flaky, mode): |
| 94 return (mode == "run" and not flaky) or (mode == "skip" and flaky) | 94 return (mode == "run" and not flaky) or (mode == "skip" and flaky) |
| 95 | 95 |
| 96 def FilterTestCasesByStatus(self, warn_unused_rules, flaky_tests="dontcare"): | 96 @staticmethod |
| 97 def _FilterSlow(slow, mode): |
| 98 return (mode == "run" and not slow) or (mode == "skip" and slow) |
| 99 |
| 100 @staticmethod |
| 101 def _FilterPassFail(pass_fail, mode): |
| 102 return (mode == "run" and not pass_fail) or (mode == "skip" and pass_fail) |
| 103 |
| 104 def FilterTestCasesByStatus(self, warn_unused_rules, |
| 105 flaky_tests="dontcare", |
| 106 slow_tests="dontcare", |
| 107 pass_fail_tests="dontcare"): |
| 97 filtered = [] | 108 filtered = [] |
| 98 used_rules = set() | 109 used_rules = set() |
| 99 for t in self.tests: | 110 for t in self.tests: |
| 100 flaky = False | 111 flaky = False |
| 112 slow = False |
| 113 pass_fail = False |
| 101 testname = self.CommonTestName(t) | 114 testname = self.CommonTestName(t) |
| 102 if testname in self.rules: | 115 if testname in self.rules: |
| 103 used_rules.add(testname) | 116 used_rules.add(testname) |
| 104 # Even for skipped tests, as the TestCase object stays around and | 117 # Even for skipped tests, as the TestCase object stays around and |
| 105 # PrintReport() uses it. | 118 # PrintReport() uses it. |
| 106 t.outcomes = self.rules[testname] | 119 t.outcomes = self.rules[testname] |
| 107 if statusfile.DoSkip(t.outcomes): | 120 if statusfile.DoSkip(t.outcomes): |
| 108 continue # Don't add skipped tests to |filtered|. | 121 continue # Don't add skipped tests to |filtered|. |
| 109 flaky = statusfile.IsFlaky(t.outcomes) | 122 flaky = statusfile.IsFlaky(t.outcomes) |
| 123 slow = statusfile.IsSlow(t.outcomes) |
| 124 pass_fail = statusfile.IsPassOrFail(t.outcomes) |
| 110 skip = False | 125 skip = False |
| 111 for rule in self.wildcards: | 126 for rule in self.wildcards: |
| 112 assert rule[-1] == '*' | 127 assert rule[-1] == '*' |
| 113 if testname.startswith(rule[:-1]): | 128 if testname.startswith(rule[:-1]): |
| 114 used_rules.add(rule) | 129 used_rules.add(rule) |
| 115 t.outcomes = self.wildcards[rule] | 130 t.outcomes = self.wildcards[rule] |
| 116 if statusfile.DoSkip(t.outcomes): | 131 if statusfile.DoSkip(t.outcomes): |
| 117 skip = True | 132 skip = True |
| 118 break # "for rule in self.wildcards" | 133 break # "for rule in self.wildcards" |
| 119 flaky = flaky or statusfile.IsFlaky(t.outcomes) | 134 flaky = flaky or statusfile.IsFlaky(t.outcomes) |
| 120 if skip or self._FilterFlaky(flaky, flaky_tests): | 135 slow = slow or statusfile.IsSlow(t.outcomes) |
| 136 pass_fail = pass_fail or statusfile.IsPassOrFail(t.outcomes) |
| 137 if (skip or self._FilterFlaky(flaky, flaky_tests) |
| 138 or self._FilterSlow(slow, slow_tests) |
| 139 or self._FilterPassFail(pass_fail, pass_fail_tests)): |
| 121 continue # "for t in self.tests" | 140 continue # "for t in self.tests" |
| 122 filtered.append(t) | 141 filtered.append(t) |
| 123 self.tests = filtered | 142 self.tests = filtered |
| 124 | 143 |
| 125 if not warn_unused_rules: | 144 if not warn_unused_rules: |
| 126 return | 145 return |
| 127 | 146 |
| 128 for rule in self.rules: | 147 for rule in self.rules: |
| 129 if rule not in used_rules: | 148 if rule not in used_rules: |
| 130 print("Unused rule: %s -> %s" % (rule, self.rules[rule])) | 149 print("Unused rule: %s -> %s" % (rule, self.rules[rule])) |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 187 def StripOutputForTransmit(self, testcase): | 206 def StripOutputForTransmit(self, testcase): |
| 188 if not self.HasUnexpectedOutput(testcase): | 207 if not self.HasUnexpectedOutput(testcase): |
| 189 testcase.output.stdout = "" | 208 testcase.output.stdout = "" |
| 190 testcase.output.stderr = "" | 209 testcase.output.stderr = "" |
| 191 | 210 |
| 192 def CalculateTotalDuration(self): | 211 def CalculateTotalDuration(self): |
| 193 self.total_duration = 0.0 | 212 self.total_duration = 0.0 |
| 194 for t in self.tests: | 213 for t in self.tests: |
| 195 self.total_duration += t.duration | 214 self.total_duration += t.duration |
| 196 return self.total_duration | 215 return self.total_duration |
| OLD | NEW |