[PATCH] D52036: [Analyzer] Make plist tests less fragile

Mikhail Maltsev via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Sep 13 07:53:31 PDT 2018


miyuki created this revision.
miyuki added reviewers: NoQ, dcoughlin, george.karpenkov.
Herald added subscribers: Szelethus, mikhail.ramalho, a.sidorin, szepet, eraman, xazax.hun.

A recent change https://reviews.llvm.org/D50545 started using diff to
compare plist output against reference output. There are two
differences that are expected: clang version and absolute source file
paths, these differences have been eliminated by adding several -I
(ignore) regular expressions to the diff commands.

Unfortunately such approach is still fragile: in our downstream
version of Clang we use a slightly different format for the version
string and it does not match the regular expression used in the tests.

This patch adds a new analyzer option, -analyzer-output-no-fragile
which disables output of malleable parts into plist files and adjusts
the tests accordingly.


https://reviews.llvm.org/D52036

Files:
  include/clang/Driver/CC1Options.td
  include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
  lib/Frontend/CompilerInvocation.cpp
  lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
  test/Analysis/Inputs/expected-plists/NewDelete-path-notes.cpp.plist
  test/Analysis/Inputs/expected-plists/conditional-path-notes.c.plist
  test/Analysis/Inputs/expected-plists/cxx-for-range.cpp.plist
  test/Analysis/Inputs/expected-plists/edges-new.mm.plist
  test/Analysis/Inputs/expected-plists/generics.m.plist
  test/Analysis/Inputs/expected-plists/inline-plist.c.plist
  test/Analysis/Inputs/expected-plists/inline-unique-reports.c.plist
  test/Analysis/Inputs/expected-plists/method-call-path-notes.cpp.plist
  test/Analysis/Inputs/expected-plists/model-file.cpp.plist
  test/Analysis/Inputs/expected-plists/null-deref-path-notes.m.plist
  test/Analysis/Inputs/expected-plists/nullability-notes.m.plist
  test/Analysis/Inputs/expected-plists/objc-arc.m.plist
  test/Analysis/Inputs/expected-plists/plist-macros.cpp.plist
  test/Analysis/Inputs/expected-plists/plist-output-alternate.m.plist
  test/Analysis/Inputs/expected-plists/plist-output.m.plist
  test/Analysis/Inputs/expected-plists/retain-release-path-notes.m.plist
  test/Analysis/Inputs/expected-plists/unix-fns.c.plist
  test/Analysis/NewDelete-path-notes.cpp
  test/Analysis/conditional-path-notes.c
  test/Analysis/copypaste/Inputs/expected-plists/plist-diagnostics-notes-as-events.cpp.plist
  test/Analysis/copypaste/Inputs/expected-plists/plist-diagnostics.cpp.plist
  test/Analysis/copypaste/plist-diagnostics-notes-as-events.cpp
  test/Analysis/copypaste/plist-diagnostics.cpp
  test/Analysis/cxx-for-range.cpp
  test/Analysis/diagnostics/Inputs/expected-plists/deref-track-symbolic-region.c.plist
  test/Analysis/diagnostics/Inputs/expected-plists/report-issues-within-main-file.cpp.plist
  test/Analysis/diagnostics/Inputs/expected-plists/undef-value-caller.c.plist
  test/Analysis/diagnostics/Inputs/expected-plists/undef-value-param.c.plist
  test/Analysis/diagnostics/Inputs/expected-plists/undef-value-param.m.plist
  test/Analysis/diagnostics/deref-track-symbolic-region.c
  test/Analysis/diagnostics/report-issues-within-main-file.cpp
  test/Analysis/diagnostics/undef-value-caller.c
  test/Analysis/diagnostics/undef-value-param.c
  test/Analysis/diagnostics/undef-value-param.m
  test/Analysis/edges-new.mm
  test/Analysis/generics.m
  test/Analysis/inline-plist.c
  test/Analysis/inline-unique-reports.c
  test/Analysis/inlining/Inputs/expected-plists/eager-reclamation-path-notes.c.plist
  test/Analysis/inlining/Inputs/expected-plists/eager-reclamation-path-notes.cpp.plist
  test/Analysis/inlining/Inputs/expected-plists/path-notes.c.plist
  test/Analysis/inlining/Inputs/expected-plists/path-notes.cpp.plist
  test/Analysis/inlining/Inputs/expected-plists/path-notes.m.plist
  test/Analysis/inlining/eager-reclamation-path-notes.c
  test/Analysis/inlining/eager-reclamation-path-notes.cpp
  test/Analysis/inlining/path-notes.c
  test/Analysis/inlining/path-notes.cpp
  test/Analysis/inlining/path-notes.m
  test/Analysis/method-call-path-notes.cpp
  test/Analysis/model-file.cpp
  test/Analysis/null-deref-path-notes.m
  test/Analysis/nullability-notes.m
  test/Analysis/objc-arc.m
  test/Analysis/plist-macros.cpp
  test/Analysis/plist-output-alternate.m
  test/Analysis/plist-output.m
  test/Analysis/retain-release-path-notes.m
  test/Analysis/unix-fns.c

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D52036.165292.patch
Type: text/x-patch
Size: 52804 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180913/517aab52/attachment-0001.bin>


More information about the cfe-commits mailing list