OLD | NEW |
1 # Copyright 2016 the V8 project authors. All rights reserved. | 1 # Copyright 2016 the V8 project authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 """ | 5 """ |
6 Suppressions for V8 correctness fuzzer failures. | 6 Suppressions for V8 correctness fuzzer failures. |
7 | 7 |
8 We support three types of suppressions: | 8 We support three types of suppressions: |
9 1. Ignore test case by pattern. | 9 1. Ignore test case by pattern. |
10 Map a regular expression to a bug entry. A new failure will be reported | 10 Map a regular expression to a bug entry. A new failure will be reported |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 'crbug.com/662424': '/v8/test/mjsunit/regress/regress-2989.js', | 42 'crbug.com/662424': '/v8/test/mjsunit/regress/regress-2989.js', |
43 | 43 |
44 # crbug.com/680110 | 44 # crbug.com/680110 |
45 'crbug.com/680110': '/v8/test/mjsunit/asm/pointer-masking.js', | 45 'crbug.com/680110': '/v8/test/mjsunit/asm/pointer-masking.js', |
46 'crbug.com/680110': '/v8/test/mjsunit/compiler/regress-443744.js', | 46 'crbug.com/680110': '/v8/test/mjsunit/compiler/regress-443744.js', |
47 'crbug.com/680110': '/v8/test/mjsunit/regress/wasm/regression-647649.js', | 47 'crbug.com/680110': '/v8/test/mjsunit/regress/wasm/regression-647649.js', |
48 } | 48 } |
49 | 49 |
50 # Ignore by test case pattern. Map from bug->regexp. | 50 # Ignore by test case pattern. Map from bug->regexp. |
51 # Regular expressions are assumed to be compiled. We use regexp.match. | 51 # Regular expressions are assumed to be compiled. We use regexp.match. |
| 52 # Make sure the code doesn't match in the preamble portion of the test case |
| 53 # (i.e. in the modified inlined mjsunit.js). You can reference the comment |
| 54 # between the two parts like so: |
| 55 # 'crbug.com/666308': |
| 56 # re.compile(r'.*End stripped down and modified version.*' |
| 57 # r'\.prototype.*instanceof.*.*', re.S) |
| 58 # TODO(machenbach): Insert a JS sentinel between the two parts, because |
| 59 # comments are stripped during minimization. |
52 IGNORE_TEST_CASES = { | 60 IGNORE_TEST_CASES = { |
53 'crbug.com/662907': | |
54 re.compile(r'.*new Array.*\[\d+\] =.*' | |
55 r'((Array)|(Object)).prototype.__defineSetter__.*', re.S), | |
56 | |
57 'crbug.com/663340': | |
58 re.compile(r'.*\.shift\(\).*', re.S), | |
59 | |
60 'crbug.com/666308': | |
61 re.compile(r'.*End stripped down and modified version.*' | |
62 r'\.prototype.*instanceof.*.*', re.S), | |
63 | |
64 'crbug.com/679957': | 61 'crbug.com/679957': |
65 re.compile(r'.*performance\.now.*', re.S), | 62 re.compile(r'.*performance\.now.*', re.S), |
66 } | 63 } |
67 | 64 |
68 # Ignore by output pattern. Map from config->bug->regexp. Config '' is used | 65 # Ignore by output pattern. Map from config->bug->regexp. Config '' is used |
69 # to match all configurations. Otherwise use either a compiler configuration, | 66 # to match all configurations. Otherwise use either a compiler configuration, |
70 # e.g. fullcode or validate_asm or an architecture, e.g. x64 or ia32 or a | 67 # e.g. fullcode or validate_asm or an architecture, e.g. x64 or ia32 or a |
71 # comma-separated combination, e.g. x64,fullcode, for more specific | 68 # comma-separated combination, e.g. x64,fullcode, for more specific |
72 # suppressions. | 69 # suppressions. |
73 # Bug is preferred to be a crbug.com/XYZ, but can be any short distinguishable | 70 # Bug is preferred to be a crbug.com/XYZ, but can be any short distinguishable |
74 # label. | 71 # label. |
75 # Regular expressions are assumed to be compiled. We use regexp.search. | 72 # Regular expressions are assumed to be compiled. We use regexp.search. |
76 IGNORE_OUTPUT = { | 73 IGNORE_OUTPUT = { |
77 '': { | 74 '': { |
78 'crbug.com/664068': | 75 'crbug.com/664068': |
79 re.compile(r'RangeError', re.S), | 76 re.compile(r'RangeError', re.S), |
80 | |
81 'crbug.com/669017': | |
82 re.compile(r'SyntaxError', re.S), | |
83 }, | 77 }, |
84 'validate_asm': { | 78 'validate_asm': { |
85 'validate_asm': | 79 'validate_asm': |
86 re.compile(r'TypeError'), | 80 re.compile(r'TypeError'), |
87 }, | 81 }, |
88 } | 82 } |
89 | 83 |
90 # Lines matching any of the following regular expressions will be ignored | 84 # Lines matching any of the following regular expressions will be ignored |
91 # if appearing on both sides. The capturing groups need to match exactly. | 85 # if appearing on both sides. The capturing groups need to match exactly. |
92 # Use uncompiled regular expressions - they'll be compiled later. | 86 # Use uncompiled regular expressions - they'll be compiled later. |
(...skipping 10 matching lines...) Expand all Loading... |
103 | 97 |
104 # These are rarely needed. It includes some cases above. | 98 # These are rarely needed. It includes some cases above. |
105 r'^\w*Error: .* is not .*$', | 99 r'^\w*Error: .* is not .*$', |
106 r'^(.*) \w*Error: .* is not .*$', | 100 r'^(.*) \w*Error: .* is not .*$', |
107 r'^(.*):\d+: \w*Error: .* is not .*$', | 101 r'^(.*):\d+: \w*Error: .* is not .*$', |
108 | 102 |
109 # Some test cases just print the message. | 103 # Some test cases just print the message. |
110 r'^.* is not a function(.*)$', | 104 r'^.* is not a function(.*)$', |
111 r'^(.*) is not a .*$', | 105 r'^(.*) is not a .*$', |
112 | 106 |
113 # crbug.com/669017 | |
114 r'^(.*)SyntaxError: .*$', | |
115 | |
116 # Ignore lines of stack traces as character positions might not match. | 107 # Ignore lines of stack traces as character positions might not match. |
117 r'^ at (?:new )?([^:]*):\d+:\d+(.*)$', | 108 r'^ at (?:new )?([^:]*):\d+:\d+(.*)$', |
118 r'^(.*):\d+:(.*)$', | 109 r'^(.*):\d+:(.*)$', |
119 | 110 |
120 # crbug.com/662840 | 111 # crbug.com/662840 |
121 r"^.*(?:Trying to access ')?(\w*)(?:(?:' through proxy)|" | 112 r"^.*(?:Trying to access ')?(\w*)(?:(?:' through proxy)|" |
122 r"(?: is not defined))$", | 113 r"(?: is not defined))$", |
123 | 114 |
124 # crbug.com/680064. This subsumes one of the above expressions. | 115 # crbug.com/680064. This subsumes one of the above expressions. |
125 r'^(.*)TypeError: .* function$', | 116 r'^(.*)TypeError: .* function$', |
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
318 bug = check(IGNORE_OUTPUT.get(arch, {})) | 309 bug = check(IGNORE_OUTPUT.get(arch, {})) |
319 if bug: | 310 if bug: |
320 return bug | 311 return bug |
321 bug = check(IGNORE_OUTPUT.get(config, {})) | 312 bug = check(IGNORE_OUTPUT.get(config, {})) |
322 if bug: | 313 if bug: |
323 return bug | 314 return bug |
324 bug = check(IGNORE_OUTPUT.get('%s,%s' % (arch, config), {})) | 315 bug = check(IGNORE_OUTPUT.get('%s,%s' % (arch, config), {})) |
325 if bug: | 316 if bug: |
326 return bug | 317 return bug |
327 return None | 318 return None |
OLD | NEW |