[analyzer] SATest: Weaken assumption about HTML files

Instead of assuming there is an HTML file for each diagnostics, consider
the HTML files only when they exist, individually of each other.

After generating the reference data, running

  python /scripts/SATest.py build --projects simbody

was resulting in this error:

    File "/scripts/CmpRuns.py", line 250, in read_single_file
      assert len(d['HTMLDiagnostics_files']) == 1
  KeyError: 'HTMLDiagnostics_files'

Reviewed By: steakhal

Differential Revision: https://reviews.llvm.org/D126197
This commit is contained in:
Marco Antognini 2022-05-03 16:07:06 +02:00
parent e15fef4170
commit 0ad4f29b54
1 changed files with 8 additions and 5 deletions

View File

@ -242,17 +242,20 @@ class AnalysisRun:
return
# Extract the HTML reports, if they exists.
if 'HTMLDiagnostics_files' in data['diagnostics'][0]:
htmlFiles = []
for d in data['diagnostics']:
htmlFiles = []
for d in data['diagnostics']:
if 'HTMLDiagnostics_files' in d:
# FIXME: Why is this named files, when does it have multiple
# files?
assert len(d['HTMLDiagnostics_files']) == 1
htmlFiles.append(d.pop('HTMLDiagnostics_files')[0])
else:
htmlFiles = [None] * len(data['diagnostics'])
else:
htmlFiles.append(None)
report = AnalysisReport(self, data.pop('files'))
# Python 3.10 offers zip(..., strict=True). The following assertion
# mimics it.
assert len(data['diagnostics']) == len(htmlFiles)
diagnostics = [AnalysisDiagnostic(d, report, h)
for d, h in zip(data.pop('diagnostics'), htmlFiles)]