Skip to content

Commit 1f273fd

Browse files
authored
Add support for "known errors" to Fuzzlyn pipeline (#73938)
Fuzzlyn now supports a "known errors" list that will not be reported as failing examples and will thus not cause the pipeline to fail. The list can be specified either as a path to a file containing a JSON array of error strings, or as a built-in list "dotnet/runtime" that is maintained in Fuzzlyn itself. This PR hooks the support up on the runtime side.
1 parent 96d1c8e commit 1f273fd

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

src/coreclr/scripts/fuzzlyn_run.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,8 @@ def main(main_args):
202202
"--seconds-to-run", str(run_duration),
203203
"--output-events-to", summary_file_path,
204204
"--host", path_to_corerun,
205-
"--parallelism", "-1"],
205+
"--parallelism", "-1",
206+
"--known-errors", "dotnet/runtime"],
206207
_exit_on_fail=True, _output_file=upload_fuzzer_output_path)
207208

208209
exit_evt.set()

src/coreclr/scripts/fuzzlyn_summarize.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -135,12 +135,14 @@ def seed_from_internal_zip_path(path):
135135
partition_results[partition_name]["reduced_examples"].extend(reduced_examples)
136136

137137
total_examples_generated = 0
138+
total_examples_with_known_errors = 0
138139
all_reduced_examples = []
139140
all_examples = []
140141
for partition_name, results in partition_results.items():
141142
if results['summary'] is not None:
142-
# {"DegreeOfParallelism":32,"TotalProgramsGenerated":354,"TotalRunTime":"00:00:47.0918613"}
143+
# {"DegreeOfParallelism":32,"TotalProgramsGenerated":354,"TotalProgramsWithKnownErrors":11,"TotalRunTime":"00:00:47.0918613"}
143144
total_examples_generated += results['summary']['TotalProgramsGenerated']
145+
total_examples_with_known_errors += results['summary']['TotalProgramsWithKnownErrors']
144146

145147
all_reduced_examples.extend(results['reduced_examples'])
146148
all_examples.extend(results['examples'])
@@ -189,6 +191,7 @@ def seed_from_internal_zip_path(path):
189191

190192
f.write("* Total programs generated: {}\n".format(total_examples_generated))
191193
f.write("* Number of examples found: {}\n".format(len(all_examples)))
194+
f.write("* Number of known errors hit: {}\n".format(total_examples_with_known_errors))
192195

193196
f.write("\n")
194197

@@ -225,13 +228,13 @@ def seed_from_internal_zip_path(path):
225228

226229
if len(partition_results) > 0:
227230
f.write("# Run summaries per partition\n")
228-
f.write("|Partition|# Programs generated|# Examples found|Run time|Degree of parallelism|\n")
229-
f.write("|---|---|---|---|---|\n")
231+
f.write("|Partition|# Programs generated|# Examples found|# Examples with known errors|Run time|Degree of parallelism|\n")
232+
f.write("|---|---|---|---|---|---|\n")
230233
for partition_name, results in sorted(partition_results.items(), key=lambda p: p[0]):
231234
summary = results['summary']
232235
if summary is not None:
233-
# {"DegreeOfParallelism":32,"TotalProgramsGenerated":354,"TotalRunTime":"00:00:47.0918613"}
234-
f.write("|{}|{}|{}|{}|{}|\n".format(partition_name, summary['TotalProgramsGenerated'], len(results['examples']), summary['TotalRunTime'], summary['DegreeOfParallelism']))
236+
# {"DegreeOfParallelism":32,"TotalProgramsGenerated":354,"TotalProgramsWithKnownErrors":11,"TotalRunTime":"00:00:47.0918613"}
237+
f.write("|{}|{}|{}|{}|{}|{}|\n".format(partition_name, summary['TotalProgramsGenerated'], len(results['examples']), summary['TotalProgramsWithKnownErrors'], summary['TotalRunTime'], summary['DegreeOfParallelism']))
235238

236239
print("##vso[task.uploadsummary]{}".format(md_path))
237240

0 commit comments

Comments
 (0)