]> git.ipfire.org Git - thirdparty/gcc.git/commit
libdiagnostics: add a "sarif-replay" command-line tool [PR96032]
authorDavid Malcolm <dmalcolm@redhat.com>
Mon, 18 Nov 2024 22:08:37 +0000 (17:08 -0500)
committerDavid Malcolm <dmalcolm@redhat.com>
Mon, 18 Nov 2024 22:08:37 +0000 (17:08 -0500)
commitea1506adbe7544bb51fc74a0fae3fa6fa0c68661
tree931325c2296878922e92e2267d5d32c76a6ebcf3
parent66e6e4f131e517344e4f2c16f96de90d391d94e0
libdiagnostics: add a "sarif-replay" command-line tool [PR96032]

This patch adds a new "sarif-replay" command-line tool for
viewing .sarif files.  It uses libdiagnostics to "replay"
any diagnostics found in the .sarif files in text form as if
they were GCC diagnostics.

contrib/ChangeLog:
PR other/96032
* regenerate-sarif-spec-index.py: New file.

gcc/ChangeLog:
PR other/96032
* Makefile.in (lang_checks): If libdiagnostics is enabled, add
check-sarif-replay.
(SARIF_REPLAY_OBJS): New.
(ALL_HOST_OBJS): If libdiagnostics is enabled, add
$(SARIF_REPLAY_OBJS).
(sarif-replay): New.
(install-libdiagnostics): Add sarif-replay to deps, and install
it.
* configure: Regenerate.
* configure.ac (check_languages): If libdiagnostics is enabled,
add check-sarif-replay.
(LIBDIAGNOSTICS): If libdiagnostics is enabled, add sarif-replay.
* doc/install.texi (--enable-libdiagnostics): Note that it also
enables sarif-replay.
* libsarifreplay.cc: New file.
* libsarifreplay.h: New file.
* sarif-replay.cc: New file.
* sarif-spec-urls.def: New file.

gcc/testsuite/ChangeLog:
PR other/96032
* lib/gcc-dg.exp (gcc-dg-test-1): Add "replay-sarif".
* lib/sarif-replay-dg.exp: New file.
* lib/sarif-replay.exp: New file.
* sarif-replay.dg/2.1.0-invalid/3.1-not-an-object.sarif: New test.
* sarif-replay.dg/2.1.0-invalid/3.11.11-malformed-placeholder.sarif:
New test.
* sarif-replay.dg/2.1.0-invalid/3.11.11-missing-arguments-for-placeholders.sarif:
New test.
* sarif-replay.dg/2.1.0-invalid/3.11.11-not-enough-arguments-for-placeholders.sarif:
New test.
* sarif-replay.dg/2.1.0-invalid/3.13.2-no-version.sarif: New test.
* sarif-replay.dg/2.1.0-invalid/3.13.2-version-not-a-string.sarif:
New test.
* sarif-replay.dg/2.1.0-invalid/3.13.4-bad-runs.sarif: New test.
* sarif-replay.dg/2.1.0-invalid/3.13.4-no-runs.sarif: New test.
* sarif-replay.dg/2.1.0-invalid/3.13.4-non-object-in-runs.sarif:
New test.
* sarif-replay.dg/2.1.0-invalid/3.27.10-bad-level.sarif: New test.
* sarif-replay.dg/2.1.0-unhandled/3.27.10-none-level.sarif: New test.
* sarif-replay.dg/2.1.0-valid/error-with-note.sarif: New test.
* sarif-replay.dg/2.1.0-valid/escaped-braces.sarif: New test.
* sarif-replay.dg/2.1.0-valid/null-runs.sarif: New test.
* sarif-replay.dg/2.1.0-valid/signal-1.c.sarif: New test.
* sarif-replay.dg/2.1.0-valid/spec-example-1.sarif: New test.
* sarif-replay.dg/2.1.0-valid/spec-example-2.sarif: New test.
* sarif-replay.dg/2.1.0-valid/spec-example-3.sarif: New test.
* sarif-replay.dg/2.1.0-valid/spec-example-4.sarif: New test.
* sarif-replay.dg/2.1.0-valid/tutorial-example.sarif: New test.
* sarif-replay.dg/dg.exp: New script.
* sarif-replay.dg/malformed-json/array-missing-comma.sarif: New test.
* sarif-replay.dg/malformed-json/array-with-trailing-comma.sarif:
New test.
* sarif-replay.dg/malformed-json/bad-token.sarif: New test.
* sarif-replay.dg/malformed-json/object-missing-comma.sarif: New test.
* sarif-replay.dg/malformed-json/object-with-trailing-comma.sarif:
New test.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
38 files changed:
contrib/regenerate-sarif-spec-index.py [new file with mode: 0644]
gcc/Makefile.in
gcc/configure
gcc/configure.ac
gcc/doc/install.texi
gcc/libsarifreplay.cc [new file with mode: 0644]
gcc/libsarifreplay.h [new file with mode: 0644]
gcc/sarif-replay.cc [new file with mode: 0644]
gcc/sarif-spec-urls.def [new file with mode: 0644]
gcc/testsuite/lib/gcc-dg.exp
gcc/testsuite/lib/sarif-replay-dg.exp [new file with mode: 0644]
gcc/testsuite/lib/sarif-replay.exp [new file with mode: 0644]
gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.1-not-an-object.sarif [new file with mode: 0644]
gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.11.11-malformed-placeholder.sarif [new file with mode: 0644]
gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.11.11-missing-arguments-for-placeholders.sarif [new file with mode: 0644]
gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.11.11-not-enough-arguments-for-placeholders.sarif [new file with mode: 0644]
gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.13.2-no-version.sarif [new file with mode: 0644]
gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.13.2-version-not-a-string.sarif [new file with mode: 0644]
gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.13.4-bad-runs.sarif [new file with mode: 0644]
gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.13.4-no-runs.sarif [new file with mode: 0644]
gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.13.4-non-object-in-runs.sarif [new file with mode: 0644]
gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.27.10-bad-level.sarif [new file with mode: 0644]
gcc/testsuite/sarif-replay.dg/2.1.0-unhandled/3.27.10-none-level.sarif [new file with mode: 0644]
gcc/testsuite/sarif-replay.dg/2.1.0-valid/error-with-note.sarif [new file with mode: 0644]
gcc/testsuite/sarif-replay.dg/2.1.0-valid/escaped-braces.sarif [new file with mode: 0644]
gcc/testsuite/sarif-replay.dg/2.1.0-valid/null-runs.sarif [new file with mode: 0644]
gcc/testsuite/sarif-replay.dg/2.1.0-valid/signal-1.c.sarif [new file with mode: 0644]
gcc/testsuite/sarif-replay.dg/2.1.0-valid/spec-example-1.sarif [new file with mode: 0644]
gcc/testsuite/sarif-replay.dg/2.1.0-valid/spec-example-2.sarif [new file with mode: 0644]
gcc/testsuite/sarif-replay.dg/2.1.0-valid/spec-example-3.sarif [new file with mode: 0644]
gcc/testsuite/sarif-replay.dg/2.1.0-valid/spec-example-4.sarif [new file with mode: 0644]
gcc/testsuite/sarif-replay.dg/2.1.0-valid/tutorial-example.sarif [new file with mode: 0644]
gcc/testsuite/sarif-replay.dg/dg.exp [new file with mode: 0644]
gcc/testsuite/sarif-replay.dg/malformed-json/array-missing-comma.sarif [new file with mode: 0644]
gcc/testsuite/sarif-replay.dg/malformed-json/array-with-trailing-comma.sarif [new file with mode: 0644]
gcc/testsuite/sarif-replay.dg/malformed-json/bad-token.sarif [new file with mode: 0644]
gcc/testsuite/sarif-replay.dg/malformed-json/object-missing-comma.sarif [new file with mode: 0644]
gcc/testsuite/sarif-replay.dg/malformed-json/object-with-trailing-comma.sarif [new file with mode: 0644]