[scan-build-py] Fix exception on shutdown with sarif-html output format
authorAnders Waldenborg <anders@0x63.nu>
Fri, 3 Jun 2022 08:28:22 +0000 (10:28 +0200)
committerAnders Waldenborg <anders@0x63.nu>
Fri, 10 Jun 2022 21:21:09 +0000 (23:21 +0200)
When running scan-build-py's analyze-build script with output format set
to sarif & html it wants to print a message on how to look at the
defects mentioning the directory name twice.

But the path argument was only given once to the logging function,
causing "TypeError: not enough arguments for format string" exception.

Differential Revision: https://reviews.llvm.org/D126974

clang/tools/scan-build-py/lib/libscanbuild/analyze.py

index 08802de..2633139 100644 (file)
@@ -357,6 +357,7 @@ def report_directory(hint, keep, output_format):
     try:
         yield name
     finally:
+        args = (name,)
         if os.listdir(name):
             if output_format not in ['sarif', 'sarif-html']: # FIXME:
                 # 'scan-view' currently does not support sarif format.
@@ -364,6 +365,7 @@ def report_directory(hint, keep, output_format):
             elif output_format == 'sarif-html':
                 msg = "Run 'scan-view %s' to examine bug reports or see " \
                     "merged sarif results at %s/results-merged.sarif."
+                args = (name, name)
             else:
                 msg = "View merged sarif results at %s/results-merged.sarif."
             keep = True
@@ -372,7 +374,7 @@ def report_directory(hint, keep, output_format):
                 msg = "Report directory '%s' contains no report, but kept."
             else:
                 msg = "Removing directory '%s' because it contains no report."
-        logging.warning(msg, name)
+        logging.warning(msg, *args)
 
         if not keep:
             os.rmdir(name)