Update clang analyzer for new tool support, Python 3, and error fixes.

Review Request #11553 — Created March 25, 2021 and submitted

Information

ReviewBot
release-3.0.x

Reviewers

This updates ClangTool to subclass the newer BaseTool, and to use
the newer features it offers (dependencies, improved centralized base
command building, and standardized error code/column output).

It also adds Python 3 support. The plistlib module changed
substantially between Python 2 and 3, and we didn't have working clang
support in Review Bot 2.0 for Python 3.

Some fixes were put in place for handling clang results when
encountering a compiler error. Previously, these would just fail, as the
generated plist file wouldn't exist, and we assumed it did. Now, such
errors are turned directly into comments on a file, showing the error
output.

Along with that, line ranges are corrected, correctly commenting on the
exact number of lines that an error spans.

Unit tests were added for both simulated and actual runs of clang, using
the same datasets and expectations for both, to help catch regressions
down the road.

All unit tests pass on Python 2.7 and 3.x.

Summary ID
Update clang analyzer for new tool support, Python 3, and error fixes.
This updates `ClangTool` to subclass the newer `BaseTool`, and to use the newer features it offers (dependencies, improved centralized base command building, and standardized error code/column output). It also adds Python 3 support. The `plistlib` module changed substantially between Python 2 and 3, and we didn't have working clang support in Review Bot 2.0 for Python 3. Some fixes were put in place for handling clang results when encountering a compiler error. Previously, these would just fail, as the generated plist file wouldn't exist, and we assumed it did. Now, such errors are turned directly into comments on a file, showing the error output. Along with that, line ranges are corrected, correctly commenting on the exact number of lines that an error spans. Unit tests were added for both simulated and actual runs of clang, using the same datasets and expectations for both, to help catch regressions down the road.
d9113e760b7650ba4cd05908a20dff83d5032821
chipx86
chipx86
david
  1. Ship It!
  2. 
      
chipx86
Review request changed
Status:
Completed
Change Summary:
Pushed to release-3.0.x (4457500)