]> sourceware.org Git - libabigail.git/commitdiff
Bug 20180 - Support system-wide suppression specifications
authorDodji Seketeli <dodji@redhat.com>
Mon, 30 May 2016 08:37:48 +0000 (10:37 +0200)
committerDodji Seketeli <dodji@redhat.com>
Mon, 30 May 2016 16:39:49 +0000 (18:39 +0200)
This patch adds support for loading system and user level suppression
specifications for libabigail tools.

At launch time, relevant libabigail tools (abidiff, abipkgdiff
fedabipkgdiff for now) read the default system suppression
specification file, if it's present, from a file which path is the
value of the environment variable
LIBABIGAIL_DEFAULT_SYSTEM_SUPPRESSION_FILE, if set, or from the file
$libdir/libabigail/default.abignore.

Then it reads the user system suppression specification file, if it's
present, from a file which path is the value of the environment
variable LIBABIGAIL_DEFAULT_USER_SUPPRESSION_FILE, if set, or from the
file $HOME/.abignore.

The content of the user system suppression file is merged with the
content of default system suppression file.

That content is also merged with the content of the suppression
specification files that might be provided by the --suppressions
command line option of the invoked tools.

The resulting set of all these suppression specifications is thus used
to filter the ABI change reports that are emitted.

abidiff, abipkgdiff and abipkgdiff gain a --no-default-suppression
option to avoid loading any of these default suppression specification
files.

The patch also installs a default.abignore file into $(pkglibdir).
Note that on x86_64, that directory is /usr/lib64/libabigail.  Now we
just need to think about the content of that default.abignore file.

* doc/manuals/abidiff.rst: Document the default suppression
scheme, its interaction with the --supprs option and the new
--no-default option.
* doc/manuals/abipkgdiff.rst: Likewise.
* doc/manuals/fedabipkgdiff.rst: Likewise.
* configure.ac: Generate the tests/runtestdefaultsupprs.py file
from the new tests/runtestdefaultsupprs.py.in template.
* default.abignore: New file.
* Makefile.am: Add it to source distribution.
* src/Makefile.am: Define the ABIGAIL_ROOT_SYSTEM_LIBDIR
preprocessor macro that is set the value of the $libdir autotools
macro.
* include/abg-tools-utils.h: Update copyright years.
(get_system_libdir, get_default_system_suppression_file_path)
(get_default_user_suppression_file_path)
(load_default_system_suppressions)
(load_default_user_suppressions): Declare new functions
* src/abg-tools-utils.cc (get_system_libdir)
(get_default_system_suppression_file_path)
(get_default_user_suppression_file_path)
(load_default_system_suppressions)
(load_default_user_suppressions): Define new functions.
(is_regular_file): Amend this so that it return true for symlinks
to regular files too.
(is_dir): Amend this so that it returns true for symlinks to
directories too.
* tools/abidiff.cc (options::no_default_supprs): New data member.
(options::options): Initialize the new data member.
(display_usage): Display a new help string for the new
--no-default-suppression command line option.
(parse_command_line): Parse this new command line option.
(set_diff_context_from_opts): Load the default suppression
specifications, unless --no-default-suppression or --supprs was
provided.
* tools/abipkgdiff.cc (options::no_default_supprs): New data
member.
(options::options): Initialize the new data member.
(parse_command_line): Parse the new --no-default-suppression
command line option.
(main): Load the default suppression specifications, unless
--no-default-suppression or --supprs was provided.
* tools/fedabipkgdiff (abipkgdiff): Add --no-default-suppression
to the invocation of abipkgdiff if it was provided on the command
line.
(build_commandline_args_parser): Parse the new
--no-default-suppression command line option.
* tests/runtestdefaultsupprs.py.in: New test harness template.
* tests/Makefile.am: Add the new runtestdefaultsupprs.py to the
set of tests.
* tests/data/test-default-supprs/test0-type-suppr-0.suppr: New
test input.
* tests/data/test-default-supprs/test0-type-suppr-report-0.txt: Likewise.
* tests/data/test-default-supprs/test0-type-suppr-v0.o: Likewise.
* tests/data/test-default-supprs/test0-type-suppr-v1.o: Likewise.
* tests/data/test-default-supprs/dirpkg-1-dir-report-0.txt:
Likewise.
* tests/data/test-default-supprs/dirpkg-1-dir1: Likewise.
* tests/data/test-default-supprs/dirpkg-1-dir2: Likewise.
* tests/data/Makefile.am: Add new the new tests input above to
Makefile.am.
* tests/runtestcanonicalizetypes.sh.in: Pass
--no-default-suppression to abidiff invocations.
* tests/runtestdefaultsupprs.py.in: Likewise.
* tests/test-abidiff-exit.cc: Likewise.
* tests/test-diff-dwarf-abixml.cc: Likewise.
* tests/test-diff-filter.cc: Likewise.
* tests/test-diff-suppr.cc: Likewise.
* tools/abidiff.cc: Likewise.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
29 files changed:
Makefile.am
configure.ac
default.abignore [new file with mode: 0644]
doc/manuals/abidiff.rst
doc/manuals/abipkgdiff.rst
doc/manuals/fedabipkgdiff.rst
include/abg-tools-utils.h
src/Makefile.am
src/abg-tools-utils.cc
tests/Makefile.am
tests/data/Makefile.am
tests/data/test-default-supprs/dirpkg-1-dir-report-0.txt [new file with mode: 0644]
tests/data/test-default-supprs/dirpkg-1-dir1 [new symlink]
tests/data/test-default-supprs/dirpkg-1-dir2 [new symlink]
tests/data/test-default-supprs/test0-type-suppr-0.suppr [new symlink]
tests/data/test-default-supprs/test0-type-suppr-report-0.txt [new file with mode: 0644]
tests/data/test-default-supprs/test0-type-suppr-v0.o [new symlink]
tests/data/test-default-supprs/test0-type-suppr-v1.o [new symlink]
tests/runtestcanonicalizetypes.sh.in
tests/runtestdefaultsupprs.py.in [new file with mode: 0644]
tests/runtestfedabipkgdiff.py.in
tests/test-abidiff-exit.cc
tests/test-diff-dwarf-abixml.cc
tests/test-diff-filter.cc
tests/test-diff-pkg.cc
tests/test-diff-suppr.cc
tools/abidiff.cc
tools/abipkgdiff.cc
tools/fedabipkgdiff

index 97d171f3d503c1d654f4437f063cb1721610a112..6a2dec8c95fcac2f31fa1198a9176ba38052c0fd 100644 (file)
@@ -8,6 +8,10 @@ m4data_DATA = $(srcdir)/abigail.m4
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = libabigail.pc
 
+dist_noinst_DATA = default.abignore
+abigaillibdir = $(pkglibdir)
+abigaillib_DATA = default.abignore
+
 #bashcompletiondir = $(datadir)/bash-completion/completions
 #dist_bashcompletion_DATA =
 
index 9a952b888166c11bef2a138021a9a740318efc77..18f844d9d7e444fb2aaa3b37459681fc71d9c677 100644 (file)
@@ -469,6 +469,8 @@ AC_CONFIG_FILES([tests/runtestcanonicalizetypes.sh],
                [chmod +x tests/runtestcanonicalizetypes.sh])
 AC_CONFIG_FILES([tests/runtestfedabipkgdiff.py],
                [chmod +x tests/runtestfedabipkgdiff.py])
+AC_CONFIG_FILES([tests/runtestdefaultsupprs.py],
+               [chmod +x tests/runtestdefaultsupprs.py])
 
 AC_OUTPUT
 
diff --git a/default.abignore b/default.abignore
new file mode 100644 (file)
index 0000000..6fe5413
--- /dev/null
@@ -0,0 +1,19 @@
+# This file contains default system-wide suppression specifications to
+# be used by Abigail tools[1] to filter out specific ABI change
+# reports when comparing the ABI of some core system binaries.
+#
+# To learn about the syntax of Abigail suppression specifications,
+# please refer to the relevant section of the online manual[2].
+#
+# If you feel like some suppression specifications should be added to
+# this file so that they can be applied system-wide each time an
+# Abigail tool is invoked to compare a given core system binary,
+# please file an enhance request to
+# https://sourceware.org/bugzilla/enter_bug.cgi?product=libabigail.
+#
+# Or, consider just adding those suppression specification to your
+# ~/.abignore file.
+#
+# [1]: https://sourceware.org/libabigail/manual/libabigail-overview.html
+# [2]: https://sourceware.org/libabigail/manual/libabigail-concepts.html#suppression-specifications.
+#
index 32187d0d60b294e00587885621206021ae814eab..8b86d92e49bb2918b2f3764e4e901fb7f6501508 100644 (file)
@@ -23,6 +23,33 @@ Invocation
 
   abidiff [options] <first-shared-library> <second-shared-library>
 
+
+Environment
+===========
+
+.. _abidiff_default_supprs_label:
+
+abidiff loads two default :ref:`suppression specifications files
+<suppr_spec_label>`, merges their content and use it to filter out ABI
+change reports that might be considered as false positives to users.
+
+* Default system-wide suppression specification file
+
+  It's located by the optional environment variable
+  LIBABIGAIL_DEFAULT_SYSTEM_SUPPRESSION_FILE.  If that environment
+  variable is not set, then abidiff tries to load the suppression file
+  $libdir/libabigail/libabigail-default.abignore.  If that file is not
+  present, then no default system-wide suppression specification file
+  is loaded.
+
+* Default user suppression specification file.
+
+  It's located by the optional environment
+  LIBABIGAIL_DEFAULT_USER_SUPPRESSION_FILE.  If that environment
+  variable is not set, then abidiff tries to load the suppression file
+  $HOME/.abignore.  If that file is not present, then no default user
+  suppression specification is loaded.
+
 .. _abidiff_options_label:
 
 Options
@@ -140,13 +167,22 @@ Options
     debug information, the change information displayed is either
     added or removed symbols.
 
+  * ``--no-default-suppression``
+
+    Do not load the :ref:`default suppression specification files
+    <abidiff_default_supprs_label>`.
 
   * ``--suppressions | --suppr`` <*path-to-suppressions*>
 
     Use a :ref:`suppression specification <suppr_spec_label>` file
     located at *path-to-suppressions*.  Note that this option can
-    appear multiple times on the command line; all the suppression
-    specification files are then taken into account.
+    appear multiple times on the command line.  In that case, all of
+    the provided suppression specification files are taken into
+    account.
+
+    Please note that, by default, if this option is not provided, then
+    the :ref:`default suppression specification files
+    <abidiff_default_supprs_label>` are loaded .
 
   * ``--drop`` <*regex*>
 
index 7640225361a858aff76f4929724c39007142ba43..ccc85529a4d95fc7a978cb4235abd5213f69d1c2 100644 (file)
@@ -28,6 +28,33 @@ Invocation
 ``package1`` and ``package2`` are the packages that contain the
 binaries to be compared.
 
+
+Environment
+===========
+
+.. _abipkgdiff_default_supprs_label:
+
+abipkgdiff loads two default :ref:`suppression specifications files
+<suppr_spec_label>`, merges their content and use it to filter out ABI
+change reports that might be considered as false positives to users.
+
+* Default system-wide suppression specification file
+
+  It's located by the optional environment variable
+  LIBABIGAIL_DEFAULT_SYSTEM_SUPPRESSION_FILE.  If that environment
+  variable is not set, then abipkgdiff tries to load the suppression file
+  $libdir/libabigail/libabigail-default.abignore.  If that file is not
+  present, then no default system-wide suppression specification file
+  is loaded.
+
+* Default user suppression specification file.
+
+  It's located by the optional environment
+  LIBABIGAIL_DEFAULT_USER_SUPPRESSION_FILE.  If that environment
+  variable is not set, then abipkgdiff tries to load the suppression file
+  $HOME/.abignore.  If that file is not present, then no default user
+  suppression specification is loaded.
+
 .. _abipkgdiff_options_label:
 
 Options
@@ -116,6 +143,11 @@ Options
     execute concurrently.  This option tells it not to extract packages or run
     comparisons in parallel.
 
+  * ``--no-default-suppression``
+
+    Do not load the :ref:`default suppression specification files
+    <abipkgdiff_default_supprs_label>`.
+
   * ``--suppressions | --suppr`` <*path-to-suppressions*>
 
     Use a :ref:`suppression specification <suppr_spec_label>` file
@@ -123,6 +155,10 @@ Options
     appear multiple times on the command line.  In that case, all of
     the suppression specification files are taken into account.
 
+    Please note that, by default, if this option is not provided, then
+    the :ref:`default suppression specification files
+    <abipkgdiff_default_supprs_label>` are loaded .
+
   * ``--no-show-locs``
 
    Do not show information about where in the *second shared library*
index 5b9256338832c260e903cacacf1039a93f0966d3..006c76fe32af2850339e3f6bfb203ba0f82bb5d8 100644 (file)
@@ -22,6 +22,32 @@ Invocation
 
    fedabipkgdiff [option] <NVR> ...
 
+Environment
+===========
+
+.. _fedabipkgdiff_default_supprs_label:
+
+fedabipkgdiff loads two default :ref:`suppression specifications files
+<suppr_spec_label>`, merges their content and use it to filter out ABI
+change reports that might be considered as false positives to users.
+
+* Default system-wide suppression specification file
+
+  It's located by the optional environment variable
+  LIBABIGAIL_DEFAULT_SYSTEM_SUPPRESSION_FILE.  If that environment
+  variable is not set, then fedabipkgdiff tries to load the
+  suppression file $libdir/libabigail/libabigail-default.abignore.  If
+  that file is not present, then no default system-wide suppression
+  specification file is loaded.
+
+* Default user suppression specification file.
+
+  It's located by the optional environment
+  LIBABIGAIL_DEFAULT_USER_SUPPRESSION_FILE.  If that environment
+  variable is not set, then fedabipkgdiff tries to load the
+  suppression file $HOME/.abignore.  If that file is not present, then
+  no default user suppression specification is loaded.
+
 
 .. _fedabipkgdiff_options_label:
 
@@ -84,6 +110,11 @@ Options
     provided, the tool compares the ABI of all ELF binaries found in
     the packages.
 
+  * ``--no-default-suppression``
+
+    Do not load the :ref:`default suppression specification files
+    <fedabipkgdiff_default_supprs_label>`.
+
 .. _build:
 
 Note that a build is a specific version and release of an RPM package.
index 393cd816b01560f7cbefdf03bd67172420ae4469..e62dda06177a25315578c6af1d0c12819e6f6064 100644 (file)
@@ -1,6 +1,6 @@
 // -*- Mode: C++ -*-
 //
-// Copyright (C) 2013-2015 Red Hat, Inc.
+// Copyright (C) 2013-2016 Red Hat, Inc.
 //
 // This file is part of the GNU Application Binary Interface Generic
 // Analysis and Instrumentation Library (libabigail).  This library is
@@ -39,6 +39,7 @@ using std::ifstream;
 using std::string;
 using std::tr1::shared_ptr;
 
+const char* get_system_libdir();
 bool file_exists(const string&);
 bool is_regular_file(const string&);
 bool is_dir(const string&);
@@ -55,9 +56,22 @@ bool check_file(const string& path, ostream& out, const string& prog_name = "");
 bool string_ends_with(const string&, const string&);
 bool string_is_ascii(const string&);
 bool string_is_ascii_identifier(const string&);
+
 suppr::type_suppression_sptr
 gen_suppr_spec_from_headers(const string& hdrs_root_dir);
 
+string
+get_default_system_suppression_file_path();
+
+string
+get_default_user_suppression_file_path();
+
+void
+load_default_system_suppressions(suppr::suppressions_type&);
+
+void
+load_default_user_suppressions(suppr::suppressions_type&);
+
 class temp_file;
 
 /// Convenience typedef for a shared_ptr to @ref temp_file.
index 356e153bef489310d0d73530f7ce5d8e4324397e..d40038856f296db3adc712b8fd2852f0af9890f3 100644 (file)
@@ -33,4 +33,12 @@ $(CXX11_SOURCES)
 libabigail_la_LIBADD = $(DEPS_LIBS)
 libabigail_la_LDFLAGS = -pthread -Wl,--as-needed -no-undefined
 
-AM_CPPFLAGS=$(DEPS_CPPFLAGS) -Wall -I$(abs_top_srcdir)/include -I$(abs_top_builddir)/include -I$(abs_top_builddir)
+CUSTOM_MACROS = -DABIGAIL_ROOT_SYSTEM_LIBDIR=\"${libdir}\"
+
+AM_CPPFLAGS=\
+$(CUSTOM_MACROS)                  \
+$(DEPS_CPPFLAGS)                  \
+-Wall                             \
+-I$(abs_top_srcdir)/include       \
+-I$(abs_top_builddir)/include     \
+-I$(abs_top_builddir)
index 21ceea94ee273a7a4fa8a66e3116f75850c7d614..bece9a17a970f82e1e432e3427704eaf38abc558 100644 (file)
@@ -1,6 +1,6 @@
 // -*- Mode: C++ -*-
 //
-// Copyright (C) 2013-2015 Red Hat, Inc.
+// Copyright (C) 2013-2016 Red Hat, Inc.
 //
 // This file is part of the GNU Application Binary Interface Generic
 // Analysis and Instrumentation Library (libabigail).  This library is
@@ -48,6 +48,23 @@ using namespace abigail::suppr;
 namespace tools_utils
 {
 
+/// Get the value of $libdir variable of the autotools build
+/// system.  This is where shared libraries are usually installed.
+///
+/// @return a constant string (doesn't have to be free-ed by the
+/// caller) that represent the value of the $libdir variable in the
+/// autotools build system, or NULL if it's not set.
+const char*
+get_system_libdir()
+{
+#ifndef ABIGAIL_ROOT_SYSTEM_LIBDIR
+#error the macro ABIGAIL_ROOT_SYSTEM_LIBDIR must be set at compile time
+#endif
+
+  static __thread const char* system_libdir(ABIGAIL_ROOT_SYSTEM_LIBDIR);
+  return system_libdir;
+}
+
 /// The bitwise 'OR' operator for abidiff_status bit masks.
 ///
 /// @param l the left hand side operand of the OR operator.
@@ -159,7 +176,8 @@ file_exists(const string& path)
   return get_stat(path, &st);
 }
 
-/// Test if path is a path to a regular file.
+/// Test if path is a path to a regular file or a symbolic link to a
+/// regular file.
 ///
 /// @param path the path to consider.
 ///
@@ -172,10 +190,18 @@ is_regular_file(const string& path)
   if (!get_stat(path, &st))
     return false;
 
-  return !!S_ISREG(st.st_mode);
+  if (S_ISREG(st.st_mode))
+    return true;
+
+  string symlink_target_path;
+  if (maybe_get_symlink_target_file_path(path, symlink_target_path))
+    return is_regular_file(symlink_target_path);
+
+  return false;
 }
 
-/// Tests if a given path is a directory.
+/// Tests if a given path is a directory or a symbolic link to a
+/// directory.
 ///
 /// @param path the path to test for.
 ///
@@ -188,7 +214,14 @@ is_dir(const string& path)
   if (!get_stat(path, &st))
     return false;
 
-  return !!S_ISDIR(st.st_mode);
+  if (S_ISDIR(st.st_mode))
+    return true;
+
+  string symlink_target_path;
+  if (maybe_get_symlink_target_file_path(path, symlink_target_path))
+    return is_dir(symlink_target_path);
+
+  return false;
 }
 
 /// If a given file is a symbolic link, get the canonicalized absolute
@@ -846,6 +879,81 @@ gen_suppr_spec_from_headers(const string& headers_root_dir)
   return result;
 }
 
+/// Get the path to the default system suppression file.
+///
+/// @return a copy of the default system suppression file.
+string
+get_default_system_suppression_file_path()
+{
+  string default_system_suppr_path;
+
+  const char *s = getenv("LIBABIGAIL_DEFAULT_SYSTEM_SUPPRESSION_FILE");
+  if (s)
+    default_system_suppr_path = s;
+
+  if (default_system_suppr_path.empty())
+    default_system_suppr_path =
+      get_system_libdir() + string("/libabigail/default.abignore");
+
+  return default_system_suppr_path;
+}
+
+/// Get the path to the default user suppression file.
+///
+/// @return a copy of the default user suppression file.
+string
+get_default_user_suppression_file_path()
+{
+  string default_user_suppr_path;
+  const char *s = getenv("LIBABIGAIL_DEFAULT_USER_SUPPRESSION_FILE");
+
+  if (s == NULL)
+    {
+      s = getenv("HOME");
+      default_user_suppr_path  = s;
+      if (default_user_suppr_path.empty())
+       default_user_suppr_path = "~";
+      default_user_suppr_path += "/.abignore";
+    }
+  else
+    default_user_suppr_path = s;
+
+  return default_user_suppr_path;
+}
+
+/// Load the default system suppression specification file and
+/// populate a vector of @ref suppression_sptr with its content.
+///
+/// The default system suppression file is located at
+/// $libdir/libabigail/default-libabigail.abignore.
+///
+/// @param supprs the vector to add the suppression specifications
+/// read from the file to.
+void
+load_default_system_suppressions(suppr::suppressions_type& supprs)
+{
+  string default_system_suppr_path =
+    get_default_system_suppression_file_path();
+
+  read_suppressions(default_system_suppr_path, supprs);
+}
+
+/// Load the default user suppression specification file and populate
+/// a vector of @ref suppression_sptr with its content.
+///
+/// The default user suppression file is located at $HOME~/.abignore.
+///
+/// @param supprs the vector to add the suppression specifications
+/// read from the file to.
+void
+load_default_user_suppressions(suppr::suppressions_type& supprs)
+{
+  string default_user_suppr_path =
+    get_default_user_suppression_file_path();
+
+  read_suppressions(default_user_suppr_path, supprs);
+}
+
 }//end namespace tools_utils
 
 using abigail::ir::function_decl;
index 6fe220b531b3001832cc88024e6a2a4db41adaad..36e04259b2c7f90fcbe86e10135c1bd5942190a4 100644 (file)
@@ -36,6 +36,7 @@ runtestlookupsyms             \
 runtestaltdwarf                        \
 runtestcorediff                        \
 runtestabidiffexit             \
+runtestdefaultsupprs.py                \
 $(FEDABIPKGDIFF_TEST) $(CXX11_TESTS)
 
 
@@ -127,6 +128,9 @@ runtestcanonicalizetypes.sh$(EXEEXT):
 runtestfedabipkgdiff_py_SOURCES =
 runtestfedabipkgdiff.py$(EXEEXT):
 
+runtestdefaultsupprs_py_SOURCES =
+runtestdefaultsupprs.py$(EXEEXT):
+
 AM_CPPFLAGS=-I${abs_top_srcdir}/include \
 -I${abs_top_builddir}/include -I${abs_top_srcdir}/tools -fPIC
 
index 2bbd802a88acfb5b68309c4cbdb9ac717b9afc84..a5a5a6d4a7d962e447af7e16c8a567e0589783c3 100644 (file)
@@ -1157,7 +1157,18 @@ test-diff-pkg/tarpkg-1-report-0.txt \
 test-fedabipkgdiff/dbus-glib-0.104-3.fc23.x86_64.rpm \
 test-fedabipkgdiff/dbus-glib-debuginfo-0.104-3.fc23.x86_64.rpm \
 test-fedabipkgdiff/dbus-glib-0.80-3.fc12.x86_64.rpm \
-test-fedabipkgdiff/dbus-glib-debuginfo-0.80-3.fc12.x86_64.rpm
+test-fedabipkgdiff/dbus-glib-debuginfo-0.80-3.fc12.x86_64.rpm \
+test-default-supprs/test0-type-suppr-0.suppr \
+test-default-supprs/test0-type-suppr-report-0.txt \
+test-default-supprs/test0-type-suppr-v0.o \
+test-default-supprs/test0-type-suppr-v1.o  \
+test-default-supprs/dirpkg-1-dir-report-0.txt \
+test-default-supprs/dirpkg-1-dir1/libobj-v0.so \
+test-default-supprs/dirpkg-1-dir1/obj-v0.cc \
+test-default-supprs/dirpkg-1-dir2/dir.abignore \
+test-default-supprs/dirpkg-1-dir2/libobj-v0.so \
+test-default-supprs/dirpkg-1-dir2/obj-v0.cc
+
 
 
 
diff --git a/tests/data/test-default-supprs/dirpkg-1-dir-report-0.txt b/tests/data/test-default-supprs/dirpkg-1-dir-report-0.txt
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/data/test-default-supprs/dirpkg-1-dir1 b/tests/data/test-default-supprs/dirpkg-1-dir1
new file mode 120000 (symlink)
index 0000000..0b1dc65
--- /dev/null
@@ -0,0 +1 @@
+../test-diff-pkg/dirpkg-1-dir1
\ No newline at end of file
diff --git a/tests/data/test-default-supprs/dirpkg-1-dir2 b/tests/data/test-default-supprs/dirpkg-1-dir2
new file mode 120000 (symlink)
index 0000000..43ad50c
--- /dev/null
@@ -0,0 +1 @@
+../test-diff-pkg/dirpkg-1-dir2
\ No newline at end of file
diff --git a/tests/data/test-default-supprs/test0-type-suppr-0.suppr b/tests/data/test-default-supprs/test0-type-suppr-0.suppr
new file mode 120000 (symlink)
index 0000000..1e46cfa
--- /dev/null
@@ -0,0 +1 @@
+../test-diff-suppr/test0-type-suppr-0.suppr
\ No newline at end of file
diff --git a/tests/data/test-default-supprs/test0-type-suppr-report-0.txt b/tests/data/test-default-supprs/test0-type-suppr-report-0.txt
new file mode 100644 (file)
index 0000000..9666a8f
--- /dev/null
@@ -0,0 +1,3 @@
+Functions changes summary: 0 Removed, 0 Changed (1 filtered out), 0 Added function
+Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
+
diff --git a/tests/data/test-default-supprs/test0-type-suppr-v0.o b/tests/data/test-default-supprs/test0-type-suppr-v0.o
new file mode 120000 (symlink)
index 0000000..8a3d01b
--- /dev/null
@@ -0,0 +1 @@
+../test-diff-suppr/test0-type-suppr-v0.o
\ No newline at end of file
diff --git a/tests/data/test-default-supprs/test0-type-suppr-v1.o b/tests/data/test-default-supprs/test0-type-suppr-v1.o
new file mode 120000 (symlink)
index 0000000..e9ce6cd
--- /dev/null
@@ -0,0 +1 @@
+../test-diff-suppr/test0-type-suppr-v1.o
\ No newline at end of file
index 21dfe8184ebc11f1dbff54f8f443ba4282337421..1df6fe6a0a21cc46d8c0880d981f562ee7bf3065 100644 (file)
@@ -17,7 +17,7 @@ cat /dev/null > $outputfile
 for i in $binaries;
 do
   obj=$objdir/$i.$objext
-  cmd="$abidiff $obj $obj"
+  cmd="$abidiff --no-default-suppression $obj $obj"
   `$cmd` > $outputfile
   if test -s $outputfile; then
       echo $cmd >> $finaloutputfile
diff --git a/tests/runtestdefaultsupprs.py.in b/tests/runtestdefaultsupprs.py.in
new file mode 100644 (file)
index 0000000..62d71c9
--- /dev/null
@@ -0,0 +1,247 @@
+#!/bin/python
+
+'''Runs tests for the default suppression specifications of libabigail.
+
+This program tries to exercise the reading of default suppression
+files by the abidiff and abipkgdiff programs.
+
+It reads a set of input files to ABI-compare, along with a
+suppressions specification and a reference output.  The test points
+the environment variables LIBABIGAIL_DEFAULT_SYSTEM_SUPPRESSION_FILE
+and LIBABIGAIL_USER_SYSTEM_SUPPRESSION_FILE environment variables at
+the suppression specification and runs abidiff to compare the two
+input binary files.  The result of the comparison should be equal to
+the reference output, meaning that the suppression specification was
+taken into account.
+'''
+
+import sys
+import os
+import subprocess
+
+
+abidiff = '@top_builddir@/tools/abidiff'
+abipkgdiff = '@top_builddir@/tools/abipkgdiff'
+test_src_dir = '@top_srcdir@/tests'
+test_build_dir = '@top_builddir@/tests'
+input_dir = '@top_srcdir@/tests/data/test-default-supprs'
+output_dir = '@top_builddir@/tests/output/test-default-supprs'
+
+# This variable named is a list of 5-uples.  Here is the meaning of
+# the elements of each 5-uples:
+#
+# (first binary to compare,
+#  second binary to compare,
+#  suppression specification,
+#  reference output file,
+#  where to store the result of the comparison)
+#
+abidiff_test_specs = [('data/test-default-supprs/test0-type-suppr-v0.o',
+                       'data/test-default-supprs/test0-type-suppr-v1.o',
+                       'data/test-default-supprs/test0-type-suppr-0.suppr',
+                       'data/test-default-supprs/test0-type-suppr-report-0.txt',
+                       'output/test-default-supprs/test0-type-suppr-report-0.txt'),]
+
+# This variable named is a list of 5-uples.  Here is the meaning of
+# the elements of each 5-uples:
+#
+# (first package to compare,
+#  second package to compare,
+#  suppression specification,
+#  reference output file,
+#  where to store the result of the comparison)
+#
+abipkgdiff_test_specs = [('data/test-default-supprs/dirpkg-1-dir1',
+                          'data/test-default-supprs/dirpkg-1-dir2',
+                          'data/test-default-supprs/dirpkg-1-dir2/dir.abignore',
+                          'data/test-default-supprs/dirpkg-1-dir-report-0.txt',
+                          'output/test-default-supprs/dirpkg-1-dir-report-0.txt')]
+
+
+def ensure_output_dir_created():
+    '''Create output dir if it's not already created.'''
+
+    try:
+        os.makedirs(output_dir)
+    except:
+        pass
+
+        if not os.path.exists(output_dir):
+            sys.exit(1);
+
+def run_abidiff_tests():
+    """Run the abidiff default suppression tests.
+
+    Loop through the test inputs in the abidiff_test_specs global
+    variable and for each of the test input, launch a comparison using
+    abidiff and setting LIBABIGAIL_SYSTEM_SUPPRESSION_FILE and
+    LIBABIGAIL_USER_SYSTEM_SUPPRESSION_FILE environment variables.
+
+    Note that if LIBABIGAIL_SYSTEM_SUPPRESSION_FILE is not set,
+    libabigail tries to load the file
+    $libdir/libabigail/defaul-libabigail.abignore, and then tries to
+    load the file $HOME/.abignore.  This program does not test the
+    case where LIBABIGAIL_SYSTEM_SUPPRESSION_FILE and
+    LIBABIGAIL_USER_SYSTEM_SUPPRESSION_FILE are not set.
+
+    This function returns the exit code of the abidiff program.
+
+    """
+
+    default_suppression = output_dir + "/default.abignore"
+    with open(default_suppression, 'w') as out:
+        out.write('\n');
+
+    result = 0;
+    for test_spec in abidiff_test_specs:
+        binary1 = test_spec[0]
+        binary2 = test_spec[1]
+        suppressions = test_spec[2]
+        reference_report_path = test_spec[3]
+        output_path = test_spec[4]
+
+        binary1 = test_src_dir + "/" + binary1
+        binary2 = test_src_dir + "/" + binary2
+        suppressions = test_src_dir + "/" + suppressions if suppressions else ''
+        reference_report_path = test_src_dir + "/" + reference_report_path
+        output_path = test_build_dir + "/" + output_path
+
+        cmd = [abidiff, binary1, binary2]
+
+        # The environment variables that say where to find the default
+        # suppression specifications loaded by libabigail.
+        envs = {
+            'LIBABIGAIL_DEFAULT_SYSTEM_SUPPRESSION_FILE' : default_suppression,
+            'LIBABIGAIL_DEFAULT_USER_SUPPRESSION_FILE' : default_suppression
+        }
+
+        # Initialize the environment variables above to their default
+        # value.
+        for name, value in envs.items():
+            os.environ[name] = value;
+
+        for env_name in envs:
+            env_vars = os.environ
+            if suppressions:
+                env_vars[env_name] = suppressions
+
+           with open(output_path, 'w') as out_file:
+               subprocess.call(cmd, env=env_vars, stdout=out_file)
+
+           diffcmd = ['diff', '-u', reference_report_path,
+           output_path]
+
+           return_code = subprocess.call(diffcmd)
+            if return_code:
+                result = return_code
+                sys.stderr.write("failed abidiff test "
+                                 "for env var '" + e + "'\n");
+
+           del env_vars[env_name];
+
+        try:
+            os.remove(default_suppression)
+        except:
+            pass
+
+        return result;
+
+def run_abipkgdiff_tests():
+    """Run the abipkgdiff default suppression tests.
+
+    Loop through the test inputs in the abipkgdiff_test_specs global
+    variable and for each of the input packages, launch a comparison
+    using abipkgdiff and setting LIBABIGAIL_SYSTEM_SUPPRESSION_FILE
+    and LIBABIGAIL_USER_SYSTEM_SUPPRESSION_FILE environment variables.
+
+    Note that if LIBABIGAIL_SYSTEM_SUPPRESSION_FILE is not set,
+    libabigail tries to load the file
+    $libdir/libabigail/defaul-libabigail.abignore, and then tries to
+    load the file $HOME/.abignore.  This program does not test the
+    case where LIBABIGAIL_SYSTEM_SUPPRESSION_FILE and
+    LIBABIGAIL_USER_SYSTEM_SUPPRESSION_FILE are not set.
+
+    This function returns the exit code of the abipkgdiff program.
+
+    """
+
+    default_suppression = output_dir + "/default.abignore"
+    with open(default_suppression, 'w') as out:
+        out.write('\n');
+
+    result = 0;
+    for test_spec in abipkgdiff_test_specs:
+        pkg1 = test_spec[0]
+        pkg2 = test_spec[1]
+        suppressions = test_spec[2]
+        reference_report_path = test_spec[3]
+        output_path = test_spec[4]
+
+        pkg1 = test_src_dir + "/" + pkg1
+        pkg2 = test_src_dir + "/" + pkg2
+        suppressions = test_src_dir + "/" + suppressions if suppressions else ''
+        reference_report_path = test_src_dir + "/" + reference_report_path
+        output_path = test_build_dir + "/" + output_path
+
+        cmd = [abipkgdiff, '--no-abignore', pkg1, pkg2]
+
+        # The environment variables that say where to find the default
+        # suppression specifications loaded by libabigail.
+        envs = {
+            'LIBABIGAIL_DEFAULT_SYSTEM_SUPPRESSION_FILE' : default_suppression,
+            'LIBABIGAIL_DEFAULT_USER_SUPPRESSION_FILE' : default_suppression
+        }
+
+        # Initialize the environment variables above to their default
+        # value.
+        for name, value in envs.items():
+            os.environ[name] = value;
+
+        for env_name in envs:
+            env_vars = os.environ
+            if suppressions:
+                env_vars[env_name] = suppressions
+
+           with open(output_path, 'w') as out_file:
+               subprocess.call(cmd, env=env_vars, stdout=out_file)
+
+           diffcmd = ['diff', '-u', reference_report_path,
+           output_path]
+
+           return_code = subprocess.call(diffcmd)
+            if return_code:
+                result = return_code
+                sys.stderr.write("failed abipkgdiff test "
+                                 "for env var '" + e + "'\n");
+
+           del env_vars[env_name];
+
+        try:
+            os.remove(default_suppression)
+        except:
+            pass
+
+        return result;
+
+def main():
+    """The main entry point of this program.
+
+    This creates the output directory and launches the tests for the
+    abidiff and abipkgdiff probrams.  It the abidiff programs returns
+    with a non-zero exit code, this function returns that exit code
+    immediatly.  Otherwise, it runs the abipkgdiff tests and returns
+    its exit code.
+
+    """
+
+    ensure_output_dir_created()
+    result = 0;
+    result = run_abidiff_tests()
+    if result:
+        return result;
+    result = run_abipkgdiff_tests()
+    return result;
+
+if __name__ == '__main__':
+    exit_code = main()
+    sys.exit(exit_code)
index ed19e8306fa0545ebd52849dbff10eb5a4cd4747..fabaa7458d498bee90eea1d83065bdabd7c9bca3 100755 (executable)
@@ -434,6 +434,7 @@ class MockGlobalConfig(object):
     dry_run = False
     dso_only = True
     abipkgdiff = '@top_builddir@/tools/abipkgdiff'
+    no_default_suppr = True
 
 
 def mock_get_session():
index dd8cc247109cd62e556a1fb9dd722acb86dcdffe..9b25c6069b2bda33128afa6a03cfb7c6d0c959e0 100644 (file)
@@ -59,7 +59,7 @@ InOutSpec in_out_specs[] =
     "data/test-abidiff-exit/test1-voffset-change-v0.o",
     "data/test-abidiff-exit/test1-voffset-change-v1.o",
     "",
-    "--no-show-locs",
+    "--no-default-suppression --no-show-locs",
     abigail::tools_utils::ABIDIFF_ABI_CHANGE
     | abigail::tools_utils::ABIDIFF_ABI_INCOMPATIBLE_CHANGE,
     "data/test-abidiff-exit/test1-voffset-change-report0.txt",
@@ -69,7 +69,7 @@ InOutSpec in_out_specs[] =
     "data/test-abidiff-exit/test1-voffset-change-v0.o",
     "data/test-abidiff-exit/test1-voffset-change-v1.o",
     "data/test-abidiff-exit/test1-voffset-change.abignore",
-    "--no-show-locs",
+    "--no-default-suppression --no-show-locs",
     abigail::tools_utils::ABIDIFF_OK,
     "data/test-abidiff-exit/test1-voffset-change-report1.txt",
     "output/test-abidiff-exit/test1-voffset-change-report1.txt"
@@ -78,7 +78,7 @@ InOutSpec in_out_specs[] =
     "data/test-abidiff-exit/test2-filtered-removed-fns-v0.o",
     "data/test-abidiff-exit/test2-filtered-removed-fns-v1.o",
     "",
-    "--no-show-locs",
+    "--no-default-suppression --no-show-locs",
     abigail::tools_utils::ABIDIFF_ABI_CHANGE
     | abigail::tools_utils::ABIDIFF_ABI_INCOMPATIBLE_CHANGE,
     "data/test-abidiff-exit/test2-filtered-removed-fns-report0.txt",
@@ -88,7 +88,7 @@ InOutSpec in_out_specs[] =
     "data/test-abidiff-exit/test2-filtered-removed-fns-v0.o",
     "data/test-abidiff-exit/test2-filtered-removed-fns-v1.o",
     "data/test-abidiff-exit/test2-filtered-removed-fns.abignore",
-    "--no-show-locs",
+    "--no-default-suppression --no-show-locs",
     abigail::tools_utils::ABIDIFF_OK,
     "data/test-abidiff-exit/test2-filtered-removed-fns-report1.txt",
     "output/test-abidiff-exit/test2-filtered-removed-fns-report1.txt"
index f52a3a1ab8ac27b50efe9411582262d5d98d90f7..92d073529a2841ede01f41bf4d7dccba91ae15b3 100644 (file)
@@ -86,7 +86,8 @@ main()
        }
 
       abidiff = string(get_build_dir()) + "/tools/abidiff";
-      cmd = abidiff + " --no-architecture " + in_elf_path + " " + in_abi_path;
+      cmd = abidiff + " --no-default-suppression --no-architecture "
+       + in_elf_path + " " + in_abi_path;
       cmd += " > " + out_diff_report_path;
 
       bool abidiff_ok = true;
index 31a2ebc294c820708756870551a4c262cc2bb9cd..cd5121d7f4968bdd9c67641b684abbbd21ec4bc2 100644 (file)
@@ -60,350 +60,351 @@ InOutSpec in_out_specs[] =
   {
     "data/test-diff-filter/test0-v0.o",
     "data/test-diff-filter/test0-v1.o",
-    "--no-linkage-name --no-show-locs --no-redundant",
+    "--no-default-suppression --no-linkage-name --no-show-locs --no-redundant",
     "data/test-diff-filter/test0-report.txt",
     "output/test-diff-filter/test0-report.txt",
   },
   {
     "data/test-diff-filter/test0-v0.o",
     "data/test-diff-filter/test0-v1.o",
-    "--harmless --no-linkage-name --no-show-locs --no-redundant",
+    "--no-default-suppression --harmless --no-linkage-name "
+    "--no-show-locs --no-redundant",
     "data/test-diff-filter/test01-report.txt",
     "output/test-diff-filter/test01-report.txt",
   },
   {
     "data/test-diff-filter/test1-v0.o",
     "data/test-diff-filter/test1-v1.o",
-    "--no-linkage-name --no-show-locs --no-redundant",
+    "--no-default-suppression --no-linkage-name --no-show-locs --no-redundant",
     "data/test-diff-filter/test1-report.txt",
     "output/test-diff-filter/test1-report.txt",
   },
   {
     "data/test-diff-filter/test2-v0.o",
     "data/test-diff-filter/test2-v1.o",
-    "--no-linkage-name --no-show-locs --no-redundant",
+    "--no-default-suppression --no-linkage-name --no-show-locs --no-redundant",
     "data/test-diff-filter/test2-report.txt",
     "output/test-diff-filter/test2-report.txt",
   },
   {
     "data/test-diff-filter/test3-v0.o",
     "data/test-diff-filter/test3-v1.o",
-    "--no-linkage-name --no-show-locs --no-redundant",
+    "--no-default-suppression --no-linkage-name --no-show-locs --no-redundant",
     "data/test-diff-filter/test3-report.txt",
     "output/test-diff-filter/test3-report.txt",
   },
   {
     "data/test-diff-filter/test4-v0.o",
     "data/test-diff-filter/test4-v1.o",
-    "--no-linkage-name --no-show-locs --no-redundant",
+    "--no-default-suppression --no-linkage-name --no-show-locs --no-redundant",
     "data/test-diff-filter/test4-report.txt",
     "output/test-diff-filter/test4-report.txt",
   },
   {
     "data/test-diff-filter/test5-v0.o",
     "data/test-diff-filter/test5-v1.o",
-    "--no-linkage-name --no-show-locs --no-redundant",
+    "--no-default-suppression --no-linkage-name --no-show-locs --no-redundant",
     "data/test-diff-filter/test5-report.txt",
     "output/test-diff-filter/test5-report.txt",
   },
   {
     "data/test-diff-filter/test6-v0.o",
     "data/test-diff-filter/test6-v1.o",
-    "--no-linkage-name --no-show-locs --no-redundant",
+    "--no-default-suppression --no-linkage-name --no-show-locs --no-redundant",
     "data/test-diff-filter/test6-report.txt",
     "output/test-diff-filter/test6-report.txt",
   },
   {
     "data/test-diff-filter/test7-v0.o",
     "data/test-diff-filter/test7-v1.o",
-    "--no-linkage-name --no-show-locs --no-redundant",
+    "--no-default-suppression --no-linkage-name --no-show-locs --no-redundant",
     "data/test-diff-filter/test7-report.txt",
     "output/test-diff-filter/test7-report.txt",
   },
   {
     "data/test-diff-filter/test8-v0.o",
     "data/test-diff-filter/test8-v1.o",
-    "--no-linkage-name --no-show-locs --no-redundant",
+    "--no-default-suppression --no-linkage-name --no-show-locs --no-redundant",
     "data/test-diff-filter/test8-report.txt",
     "output/test-diff-filter/test8-report.txt",
   },
   {
     "data/test-diff-filter/test9-v0.o",
     "data/test-diff-filter/test9-v1.o",
-    "--no-linkage-name --no-show-locs --no-redundant",
+    "--no-default-suppression --no-linkage-name --no-show-locs --no-redundant",
     "data/test-diff-filter/test9-report.txt",
     "output/test-diff-filter/test9-report.txt",
   },
   {
     "data/test-diff-filter/test10-v0.o",
     "data/test-diff-filter/test10-v1.o",
-    "--no-linkage-name --no-show-locs --no-redundant",
+    "--no-default-suppression --no-linkage-name --no-show-locs --no-redundant",
     "data/test-diff-filter/test10-report.txt",
     "output/test-diff-filter/test10-report.txt",
   },
   {
     "data/test-diff-filter/test11-v0.o",
     "data/test-diff-filter/test11-v1.o",
-    "--no-linkage-name --no-show-locs --no-redundant",
+    "--no-default-suppression --no-linkage-name --no-show-locs --no-redundant",
     "data/test-diff-filter/test11-report.txt",
     "output/test-diff-filter/test11-report.txt",
   },
   {
     "data/test-diff-filter/test12-v0.o",
     "data/test-diff-filter/test12-v1.o",
-    "--no-linkage-name --no-show-locs --no-redundant",
+    "--no-default-suppression --no-linkage-name --no-show-locs --no-redundant",
     "data/test-diff-filter/test12-report.txt",
     "output/test-diff-filter/test12-report.txt",
   },
   {
     "data/test-diff-filter/test13-v0.o",
     "data/test-diff-filter/test13-v1.o",
-    "--no-linkage-name --no-show-locs --no-redundant",
+    "--no-default-suppression --no-linkage-name --no-show-locs --no-redundant",
     "data/test-diff-filter/test13-report.txt",
     "output/test-diff-filter/test13-report.txt",
   },
   {
     "data/test-diff-filter/test14-v0.o",
     "data/test-diff-filter/test14-v1.o",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-filter/test14-0-report.txt",
     "output/test-diff-filter/test14-0-report.txt",
   },
   {
     "data/test-diff-filter/test14-v0.o",
     "data/test-diff-filter/test14-v1.o",
-    "--no-show-locs --redundant",
+    "--no-default-suppression --no-show-locs --redundant",
     "data/test-diff-filter/test14-1-report.txt",
     "output/test-diff-filter/test14-1-report.txt",
   },
   {
     "data/test-diff-filter/test15-v0.o",
     "data/test-diff-filter/test15-v1.o",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-filter/test15-0-report.txt",
     "output/test-diff-filter/test15-0-report.txt",
   },
   {
     "data/test-diff-filter/test15-v0.o",
     "data/test-diff-filter/test15-v1.o",
-    "--no-show-locs --redundant",
+    "--no-default-suppression --no-show-locs --redundant",
     "data/test-diff-filter/test15-1-report.txt",
     "output/test-diff-filter/test15-1-report.txt",
   },
   {
     "data/test-diff-filter/test16-v0.o",
     "data/test-diff-filter/test16-v1.o",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-filter/test16-report.txt",
     "output/test-diff-filter/test16-report.txt",
   },
   {
     "data/test-diff-filter/test16-v0.o",
     "data/test-diff-filter/test16-v1.o",
-    "--no-show-locs --redundant",
+    "--no-default-suppression --no-show-locs --redundant",
     "data/test-diff-filter/test16-report-2.txt",
     "output/test-diff-filter/test16-report-2.txt",
   },
   {
     "data/test-diff-filter/test17-v0.o",
     "data/test-diff-filter/test17-v1.o",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-filter/test17-0-report.txt",
     "output/test-diff-filter/test17-0-report.txt",
   },
   {
     "data/test-diff-filter/test17-v0.o",
     "data/test-diff-filter/test17-v1.o",
-    "--no-show-locs --redundant",
+    "--no-default-suppression --no-show-locs --redundant",
     "data/test-diff-filter/test17-1-report.txt",
     "output/test-diff-filter/test17-1-report.txt",
   },
   {
     "data/test-diff-filter/test18-v0.o",
     "data/test-diff-filter/test18-v1.o",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-filter/test18-report.txt",
     "output/test-diff-filter/test18-report.txt",
   },
   {
     "data/test-diff-filter/test19-enum-v0.o",
     "data/test-diff-filter/test19-enum-v1.o",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-filter/test19-enum-report-0.txt",
     "output/test-diff-filter/test19-enum-report-0.txt",
   },
   {
     "data/test-diff-filter/test19-enum-v0.o",
     "data/test-diff-filter/test19-enum-v1.o",
-    "--no-show-locs --harmless",
+    "--no-default-suppression --no-show-locs --harmless",
     "data/test-diff-filter/test19-enum-report-1.txt",
     "output/test-diff-filter/test19-enum-report-1.txt",
   },
   {
     "data/test-diff-filter/test20-inline-v0.o",
     "data/test-diff-filter/test20-inline-v1.o",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-filter/test20-inline-report-0.txt",
     "output/test-diff-filter/test20-inline-report-0.txt",
   },
   {
     "data/test-diff-filter/test20-inline-v0.o",
     "data/test-diff-filter/test20-inline-v1.o",
-    "--no-show-locs --harmless",
+    "--no-default-suppression --no-show-locs --harmless",
     "data/test-diff-filter/test20-inline-report-1.txt",
     "output/test-diff-filter/test20-inline-report-1.txt",
   },
   {
     "data/test-diff-filter/libtest21-compatible-vars-v0.so",
     "data/test-diff-filter/libtest21-compatible-vars-v1.so",
-    "--no-show-locs --harmless",
+    "--no-default-suppression --no-show-locs --harmless",
     "data/test-diff-filter/test21-compatible-vars-report-0.txt",
     "output/test-diff-filter/test21-compatible-vars-report-0.txt",
   },
   {
     "data/test-diff-filter/libtest21-compatible-vars-v0.so",
     "data/test-diff-filter/libtest21-compatible-vars-v1.so",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-filter/test21-compatible-vars-report-1.txt",
     "output/test-diff-filter/test21-compatible-vars-report-1.txt",
   },
   {
     "data/test-diff-filter/libtest22-compatible-fns-v0.so",
     "data/test-diff-filter/libtest22-compatible-fns-v1.so",
-    "--no-show-locs --harmless",
+    "--no-default-suppression --no-show-locs --harmless",
     "data/test-diff-filter/test22-compatible-fns-report-0.txt",
     "output/test-diff-filter/test22-compatible-fns-report-0.txt",
   },
   {
     "data/test-diff-filter/libtest22-compatible-fns-v0.so",
     "data/test-diff-filter/libtest22-compatible-fns-v1.so",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-filter/test22-compatible-fns-report-1.txt",
     "output/test-diff-filter/test22-compatible-fns-report-1.txt",
   },
   {
     "data/test-diff-filter/libtest23-redundant-fn-parm-change-v0.so",
     "data/test-diff-filter/libtest23-redundant-fn-parm-change-v1.so",
-    "--no-show-locs",
+    "--no-default-suppression --no-show-locs",
     "data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt ",
     "output/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt ",
   },
   {
     "data/test-diff-filter/libtest24-compatible-vars-v0.so",
     "data/test-diff-filter/libtest24-compatible-vars-v1.so",
-    "--no-show-locs",
+    "--no-default-suppression --no-show-locs",
     "data/test-diff-filter/test24-compatible-vars-report-0.txt ",
     "output/test-diff-filter/test24-compatible-vars-report-0.txt ",
   },
   {
     "data/test-diff-filter/libtest24-compatible-vars-v0.so",
     "data/test-diff-filter/libtest24-compatible-vars-v1.so",
-    "--no-show-locs --harmless",
+    "--no-default-suppression --no-show-locs --harmless",
     "data/test-diff-filter/test24-compatible-vars-report-1.txt ",
     "output/test-diff-filter/test24-compatible-vars-report-1.txt ",
   },
   {
     "data/test-diff-filter/libtest25-cyclic-type-v0.so",
     "data/test-diff-filter/libtest25-cyclic-type-v1.so",
-    "--no-show-locs",
+    "--no-default-suppression --no-show-locs",
     "data/test-diff-filter/test25-cyclic-type-report-0.txt ",
     "output/test-diff-filter/test25-cyclic-type-report-0.txt "
   },
   {
     "data/test-diff-filter/libtest25-cyclic-type-v0.so",
     "data/test-diff-filter/libtest25-cyclic-type-v1.so",
-    "--no-show-locs --redundant",
+    "--no-default-suppression --no-show-locs --redundant",
     "data/test-diff-filter/test25-cyclic-type-report-1.txt ",
     "output/test-diff-filter/test25-cyclic-type-report-1.txt "
   },
   {
     "data/test-diff-filter/libtest26-qualified-redundant-node-v0.so",
     "data/test-diff-filter/libtest26-qualified-redundant-node-v1.so",
-    "--no-show-locs",
+    "--no-default-suppression --no-show-locs",
     "data/test-diff-filter/test26-qualified-redundant-node-report-0.txt",
     "output/test-diff-filter/test26-qualified-redundant-node-report-0.txt"
   },
   {
     "data/test-diff-filter/libtest26-qualified-redundant-node-v0.so",
     "data/test-diff-filter/libtest26-qualified-redundant-node-v1.so",
-    "--no-show-locs --redundant",
+    "--no-default-suppression --no-show-locs --redundant",
     "data/test-diff-filter/test26-qualified-redundant-node-report-1.txt",
     "output/test-diff-filter/test26-qualified-redundant-node-report-1.txt"
   },
   {
     "data/test-diff-filter/libtest27-redundant-and-filtered-children-nodes-v0.so",
     "data/test-diff-filter/libtest27-redundant-and-filtered-children-nodes-v1.so",
-    "--no-linkage-name --no-show-locs --no-redundant",
+    "--no-default-suppression --no-linkage-name --no-show-locs --no-redundant",
     "data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-0.txt",
     "output/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-0.txt"
   },
   {
     "data/test-diff-filter/libtest27-redundant-and-filtered-children-nodes-v0.so",
     "data/test-diff-filter/libtest27-redundant-and-filtered-children-nodes-v1.so",
-    "--no-linkage-name --no-show-locs --redundant",
+    "--no-default-suppression --no-linkage-name --no-show-locs --redundant",
     "data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-1.txt",
     "output/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-1.txt"
   },
   {
     "data/test-diff-filter/libtest27-redundant-and-filtered-children-nodes-v0.so",
     "data/test-diff-filter/libtest27-redundant-and-filtered-children-nodes-v1.so",
-    "--no-linkage-name --redundant --no-show-locs --harmless",
+    "--no-default-suppression --no-linkage-name --redundant --no-show-locs --harmless",
     "data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-2.txt",
     "output/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-2.txt"
   },
   {
     "data/test-diff-filter/libtest28-redundant-and-filtered-children-nodes-v0.so",
     "data/test-diff-filter/libtest28-redundant-and-filtered-children-nodes-v1.so",
-    "--no-linkage-name --no-show-locs --no-redundant",
+    "--no-default-suppression --no-linkage-name --no-show-locs --no-redundant",
    "data/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-0.txt",
     "output/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-0.txt",
   },
   {
     "data/test-diff-filter/libtest28-redundant-and-filtered-children-nodes-v0.so",
     "data/test-diff-filter/libtest28-redundant-and-filtered-children-nodes-v1.so",
-    "--no-linkage-name --redundant --no-show-locs --harmless",
+    "--no-default-suppression --no-linkage-name --redundant --no-show-locs --harmless",
    "data/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-1.txt",
     "output/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-1.txt",
   },
   {
     "data/test-diff-filter/test29-finer-redundancy-marking-v0.o",
     "data/test-diff-filter/test29-finer-redundancy-marking-v1.o",
-    "--no-linkage-name --no-show-locs --no-redundant",
+    "--no-default-suppression --no-linkage-name --no-show-locs --no-redundant",
     "data/test-diff-filter/test29-finer-redundancy-marking-report-0.txt",
     "output/test-diff-filter/test29-finer-redundancy-marking-report-0.txt",
   },
   {
     "data/test-diff-filter/test30-pr18904-rvalueref-liba.so",
     "data/test-diff-filter/test30-pr18904-rvalueref-libb.so",
-    "--no-linkage-name --no-show-locs --no-redundant",
+    "--no-default-suppression --no-linkage-name --no-show-locs --no-redundant",
     "data/test-diff-filter/test30-pr18904-rvalueref-report0.txt",
     "output/test-diff-filter/test30-pr18904-rvalueref-report0.txt",
   },
   { // Just like the previous test, but emit loc info.
     "data/test-diff-filter/test30-pr18904-rvalueref-liba.so",
     "data/test-diff-filter/test30-pr18904-rvalueref-libb.so",
-    "--no-linkage-name --no-redundant",
+    "--no-default-suppression --no-linkage-name --no-redundant",
     "data/test-diff-filter/test30-pr18904-rvalueref-report1.txt",
     "output/test-diff-filter/test30-pr18904-rvalueref-report1.txt",
   },
   {
     "data/test-diff-filter/test31-pr18535-libstdc++-4.8.3.so",
     "data/test-diff-filter/test31-pr18535-libstdc++-4.9.2.so",
-    "--no-linkage-name --no-show-locs --no-redundant",
+    "--no-default-suppression --no-linkage-name --no-show-locs --no-redundant",
     "data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt",
     "output/test-diff-filter/test31-pr18535-libstdc++-report-0.txt",
   },
   { // Just like the previous test, but emit loc info.
     "data/test-diff-filter/test31-pr18535-libstdc++-4.8.3.so",
     "data/test-diff-filter/test31-pr18535-libstdc++-4.9.2.so",
-    "--no-linkage-name --no-redundant",
+    "--no-default-suppression --no-linkage-name --no-redundant",
     "data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt",
     "output/test-diff-filter/test31-pr18535-libstdc++-report-1.txt",
   },
   {
     "data/test-diff-filter/libtest32-struct-change-v0.so",
     "data/test-diff-filter/libtest32-struct-change-v1.so",
-    "--no-linkage-name --no-show-locs --no-redundant",
+    "--no-default-suppression --no-linkage-name --no-show-locs --no-redundant",
     "data/test-diff-filter/test32-ppc64le-struct-change-report0.txt",
     "output/test-diff-filter/test32-ppc64le-struct-change-report0.txt",
   },
index c2e6da63452530c0376a94ae2a3f75160041b095..f77237937374859229f6a27ff325f63a5683d377 100644 (file)
@@ -67,7 +67,7 @@ static InOutSpec in_out_specs[] =
   {
     "data/test-diff-pkg/dirpkg-0-dir1",
     "data/test-diff-pkg/dirpkg-0-dir2",
-    "--no-show-locs",
+    "--no-default-suppression --no-show-locs",
     "",
     "",
     "",
@@ -80,7 +80,7 @@ static InOutSpec in_out_specs[] =
   {
     "data/test-diff-pkg/dirpkg-1-dir1",
     "data/test-diff-pkg/dirpkg-1-dir2",
-    "--no-show-locs",
+    "--no-default-suppression --no-show-locs",
     "",
     "",
     "",
@@ -94,7 +94,7 @@ static InOutSpec in_out_specs[] =
   {
     "data/test-diff-pkg/dirpkg-1-dir1",
     "data/test-diff-pkg/dirpkg-1-dir2",
-    "--no-abignore --no-show-locs",
+    "--no-default-suppression --no-abignore --no-show-locs",
     "",
     "",
     "",
@@ -108,7 +108,7 @@ static InOutSpec in_out_specs[] =
   {
     "data/test-diff-pkg/dirpkg-2-dir1",
     "data/test-diff-pkg/dirpkg-2-dir2",
-    "--no-show-locs",
+    "--no-default-suppression --no-show-locs",
     "",
     "",
     "",
@@ -123,7 +123,7 @@ static InOutSpec in_out_specs[] =
   {
     "data/test-diff-pkg/dirpkg-3-dir1",
     "data/test-diff-pkg/dirpkg-3-dir2",
-    "--no-show-locs",
+    "--no-default-suppression --no-show-locs",
     "data/test-diff-pkg/dirpkg-3.suppr",
     "",
     "",
@@ -139,7 +139,7 @@ static InOutSpec in_out_specs[] =
   {
     "data/test-diff-pkg/dirpkg-3-dir1",
     "data/test-diff-pkg/dirpkg-3-dir2",
-    "--no-show-locs --no-abignore",
+    "--no-default-suppression --no-show-locs --no-abignore",
     "data/test-diff-pkg/dirpkg-3.suppr",
     "",
     "",
@@ -151,7 +151,7 @@ static InOutSpec in_out_specs[] =
   { // Just like the previous tests, but loc info is emitted.
     "data/test-diff-pkg/dirpkg-3-dir1",
     "data/test-diff-pkg/dirpkg-3-dir2",
-    "--no-abignore",
+    "--no-default-suppression --no-abignore",
     "data/test-diff-pkg/dirpkg-3.suppr",
     "",
     "",
@@ -163,7 +163,7 @@ static InOutSpec in_out_specs[] =
   {
     "data/test-diff-pkg/symlink-dir-test1/dir1/symlinks",
     "data/test-diff-pkg/symlink-dir-test1/dir2/symlinks",
-    "",
+    "--no-default-suppression ",
     "",
     "",
     "",
@@ -176,7 +176,7 @@ static InOutSpec in_out_specs[] =
   {
     "data/test-diff-pkg/tarpkg-0-dir1.tar",
     "data/test-diff-pkg/tarpkg-0-dir2.tar",
-    "--no-show-locs",
+    "--no-default-suppression --no-show-locs",
     "",
     "",
     "",
@@ -188,7 +188,7 @@ static InOutSpec in_out_specs[] =
   {
     "data/test-diff-pkg/tarpkg-0-dir1.ta",
     "data/test-diff-pkg/tarpkg-0-dir2.ta",
-    "--no-show-locs",
+    "--no-default-suppression --no-show-locs",
     "",
     "",
     "",
@@ -200,7 +200,7 @@ static InOutSpec in_out_specs[] =
   {
     "data/test-diff-pkg/tarpkg-0-dir1.tar.gz",
     "data/test-diff-pkg/tarpkg-0-dir2.tar.gz",
-    "--no-show-locs",
+    "--no-default-suppression --no-show-locs",
     "",
     "",
     "",
@@ -212,7 +212,7 @@ static InOutSpec in_out_specs[] =
   {
     "data/test-diff-pkg/tarpkg-0-dir1.tar.bz2",
     "data/test-diff-pkg/tarpkg-0-dir2.tar.bz2",
-    "--no-show-locs",
+    "--no-default-suppression --no-show-locs",
     "",
     "",
     "",
@@ -224,7 +224,7 @@ static InOutSpec in_out_specs[] =
   {
     "data/test-diff-pkg/tarpkg-1-dir1.tar.gz",
     "data/test-diff-pkg/tarpkg-1-dir2.tar.gz",
-    "--dso-only",
+    "--no-default-suppression --dso-only",
     "",
     "",
     "",
@@ -240,7 +240,7 @@ static InOutSpec in_out_specs[] =
   {
     "data/test-diff-pkg/dbus-glib-0.80-3.fc12.x86_64.rpm",
     "data/test-diff-pkg/dbus-glib-0.104-3.fc23.x86_64.rpm",
-    "--no-show-locs",
+    "--no-default-suppression --no-show-locs",
     "",
     "data/test-diff-pkg/dbus-glib-debuginfo-0.80-3.fc12.x86_64.rpm",
     "data/test-diff-pkg/dbus-glib-debuginfo-0.104-3.fc23.x86_64.rpm",
@@ -253,7 +253,7 @@ static InOutSpec in_out_specs[] =
   {
     "data/test-diff-pkg/dbus-glib-0.80-3.fc12.x86_64.rpm",
     "data/test-diff-pkg/dbus-glib-0.104-3.fc23.x86_64.rpm",
-    "--no-show-locs",
+    "--no-default-suppression --no-show-locs",
     "",
     "data/test-diff-pkg/dbus-glib-debuginfo-0.80-3.fc12.x86_64.rpm",
     "",
@@ -267,7 +267,7 @@ static InOutSpec in_out_specs[] =
   {
     "data/test-diff-pkg/dbus-glib-0.80-3.fc12.x86_64.rpm",
     "data/test-diff-pkg/dbus-glib-0.104-3.fc23.x86_64.rpm",
-    "--no-show-locs",
+    "--no-default-suppression --no-show-locs",
     "",
     "",
     "data/test-diff-pkg/dbus-glib-debuginfo-0.104-3.fc23.x86_64.rpm",
@@ -281,7 +281,7 @@ static InOutSpec in_out_specs[] =
   {
     "data/test-diff-pkg/dbus-glib-0.80-3.fc12.x86_64.rpm",
     "data/test-diff-pkg/dbus-glib-0.104-3.fc23.x86_64.rpm",
-    "--no-show-locs",
+    "--no-default-suppression --no-show-locs",
     "",
     "",
     "",
@@ -295,7 +295,7 @@ static InOutSpec in_out_specs[] =
   {
     "data/test-diff-pkg/dbus-glib-0.80-3.fc12.x86_64.rpm",
     "data/test-diff-pkg/dbus-glib-0.80-3.fc12.x86_64.rpm",
-    "--no-show-locs",
+    "--no-default-suppression --no-show-locs",
     "",
     "data/test-diff-pkg/dbus-glib-debuginfo-0.80-3.fc12.x86_64.rpm",
     "data/test-diff-pkg/dbus-glib-debuginfo-0.80-3.fc12.x86_64.rpm",
@@ -309,7 +309,7 @@ static InOutSpec in_out_specs[] =
   {
     "data/test-diff-pkg/dbus-glib-0.80-3.fc12.x86_64.rpm",
     "data/test-diff-pkg/dbus-glib-0.104-3.fc23.x86_64.rpm",
-    "--no-show-locs --no-added-syms",
+    "--no-default-suppression --no-show-locs --no-added-syms",
     "",
     "data/test-diff-pkg/dbus-glib-debuginfo-0.80-3.fc12.x86_64.rpm",
     "data/test-diff-pkg/dbus-glib-debuginfo-0.104-3.fc23.x86_64.rpm",
@@ -321,7 +321,7 @@ static InOutSpec in_out_specs[] =
   {
     "data/test-diff-pkg/qemu-img-rhev-2.3.0-7.el7.ppc64.rpm",
     "data/test-diff-pkg/qemu-img-rhev-2.3.0-20.el7.ppc64.rpm",
-    "--no-show-locs --no-added-syms",
+    "--no-default-suppression --no-show-locs --no-added-syms",
     "",
     "data/test-diff-pkg/qemu-kvm-rhev-debuginfo-2.3.0-7.el7.ppc64.rpm",
     "data/test-diff-pkg/qemu-kvm-rhev-debuginfo-2.3.0-20.el7.ppc64.rpm",
@@ -345,7 +345,7 @@ static InOutSpec in_out_specs[] =
   {
     "data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64.rpm",
     "data/test-diff-pkg/tbb-4.3-3.20141204.fc23.x86_64.rpm",
-    "",
+    "--no-default-suppression",
     "",
     "data/test-diff-pkg/tbb-debuginfo-4.1-9.20130314.fc22.x86_64.rpm",
     "data/test-diff-pkg/tbb-debuginfo-4.3-3.20141204.fc23.x86_64.rpm",
@@ -357,7 +357,7 @@ static InOutSpec in_out_specs[] =
   {
     "data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64.rpm",
     "data/test-diff-pkg/tbb-4.3-3.20141204.fc23.x86_64.rpm",
-    "",
+    "--no-default-suppression",
     "",
     "data/test-diff-pkg/tbb-debuginfo-4.1-9.20130314.fc22.x86_64.rpm",
     "data/test-diff-pkg/tbb-debuginfo-4.3-3.20141204.fc23.x86_64.rpm",
@@ -369,7 +369,7 @@ static InOutSpec in_out_specs[] =
   {
     "data/test-diff-pkg/libICE-1.0.6-1.el6.x86_64.rpm",
     "data/test-diff-pkg/libICE-1.0.9-2.el7.x86_64.rpm",
-    "",
+    "--no-default-suppression",
     "",
     "data/test-diff-pkg/libICE-debuginfo-1.0.6-1.el6.x86_64.rpm",
     "data/test-diff-pkg/libICE-debuginfo-1.0.9-2.el7.x86_64.rpm",
@@ -381,7 +381,7 @@ static InOutSpec in_out_specs[] =
   {
     "data/test-diff-pkg/gtk2-immodule-xim-2.24.22-5.el7.i686.rpm",
     "data/test-diff-pkg/gtk2-immodule-xim-2.24.28-8.el7.i686.rpm",
-    "",
+    "--no-default-suppression",
     "",
     "data/test-diff-pkg/gtk2-debuginfo-2.24.22-5.el7.i686.rpm",
     "data/test-diff-pkg/gtk2-debuginfo-2.24.28-8.el7.i686.rpm",
@@ -397,7 +397,7 @@ static InOutSpec in_out_specs[] =
   {
     "data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64.deb",
     "data/test-diff-pkg/libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64.deb",
-    "--no-show-locs --fail-no-dbg",
+    "--no-default-suppression --no-show-locs --fail-no-dbg",
     "",
     "data/test-diff-pkg/libsigc++-2.0-0c2a-dbgsym_2.4.0-1_amd64.ddeb",
     "data/test-diff-pkg/libsigc++-2.0-0v5-dbgsym_2.4.1-1ubuntu2_amd64.ddeb",
index ce94a8e2cebd77e707b002294668e46b7ee72448..a2ceaf72a953c3bcee1095173ec87beda9d8ebf5 100644 (file)
@@ -64,7 +64,7 @@ InOutSpec in_out_specs[] =
     NULL,
     NULL,
     NULL,
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test0-type-suppr-report-0.txt",
     "output/test-diff-suppr/test0-type-suppr-report-0.txt",
   },
@@ -74,7 +74,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test0-type-suppr-0.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test0-type-suppr-report-1.txt",
     "output/test-diff-suppr/test0-type-suppr-report-1.txt",
   },
@@ -84,7 +84,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test0-type-suppr-1.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test0-type-suppr-report-2.txt",
     "output/test-diff-suppr/test0-type-suppr-report-2.txt",
   },
@@ -94,7 +94,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test0-type-suppr-2.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test0-type-suppr-report-3.txt",
     "output/test-diff-suppr/test0-type-suppr-report-3.txt",
   },
@@ -104,7 +104,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test0-type-suppr-3.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test0-type-suppr-report-4.txt",
     "output/test-diff-suppr/test0-type-suppr-report-4.txt",
   },
@@ -114,7 +114,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test0-type-suppr-4.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test0-type-suppr-report-5.txt",
     "output/test-diff-suppr/test0-type-suppr-report-5.txt",
   },
@@ -124,7 +124,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test0-type-suppr-5.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test0-type-suppr-report-6.txt",
     "output/test-diff-suppr/test0-type-suppr-report-6.txt",
   },
@@ -134,7 +134,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test0-type-suppr-6.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test0-type-suppr-report-7.txt",
     "output/test-diff-suppr/test0-type-suppr-report-7.txt",
   },
@@ -144,7 +144,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test1-typedef-suppr-report-0.txt",
     "output/test-diff-suppr/test1-typedef-suppr-report-0.txt",
   },
@@ -154,7 +154,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test1-typedef-suppr-0.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test1-typedef-suppr-report-1.txt",
     "output/test-diff-suppr/test1-typedef-suppr-report-1.txt",
   },
@@ -164,7 +164,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test1-typedef-suppr-1.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test1-typedef-suppr-report-2.txt",
     "output/test-diff-suppr/test1-typedef-suppr-report-2.txt",
   },
@@ -174,7 +174,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test2-struct-suppr-0.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test2-struct-suppr-report-0.txt",
     "output/test-diff-suppr/test2-struct-suppr-report-0.txt",
   },
@@ -184,7 +184,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test2-struct-suppr-1.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test2-struct-suppr-report-1.txt",
     "output/test-diff-suppr/test2-struct-suppr-report-1.txt",
   },
@@ -194,7 +194,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     NULL,
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test3-struct-suppr-report-0.txt",
     "output/test-diff-suppr/test3-struct-suppr-report-0.txt",
   },
@@ -204,7 +204,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test3-struct-suppr-0.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test3-struct-suppr-report-1.txt",
     "output/test-diff-suppr/test3-struct-suppr-report-1.txt",
   },
@@ -214,7 +214,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test3-struct-suppr-1.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test3-struct-suppr-report-2.txt",
     "output/test-diff-suppr/test3-struct-suppr-report-2.txt",
   },
@@ -224,7 +224,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test4-local-suppr-0.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test4-local-suppr-report-1.txt",
     "output/test-diff-suppr/test4-local-suppr-report-1.txt",
   },
@@ -234,7 +234,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-show-locs",
+    "--no-default-suppression --no-show-locs",
     "data/test-diff-suppr/test4-local-suppr-report-0.txt",
     "output/test-diff-suppr/test4-local-suppr-report-0.txt",
   },
@@ -244,7 +244,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test5-fn-suppr-report-0.txt",
     "output/test-diff-suppr/test5-fn-suppr-report-0.txt",
   },
@@ -254,7 +254,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test5-fn-suppr-0.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test5-fn-suppr-report-1.txt",
     "output/test-diff-suppr/test5-fn-suppr-report-1.txt",
   },
@@ -264,7 +264,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test5-fn-suppr-1.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test5-fn-suppr-report-2.txt",
     "output/test-diff-suppr/test5-fn-suppr-report-2.txt",
   },
@@ -274,7 +274,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test5-fn-suppr-2.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test5-fn-suppr-report-3.txt",
     "output/test-diff-suppr/test5-fn-suppr-report-3.txt",
   },
@@ -284,7 +284,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test5-fn-suppr-3.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test5-fn-suppr-report-4.txt",
     "output/test-diff-suppr/test5-fn-suppr-report-4.txt",
   },
@@ -294,7 +294,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test5-fn-suppr-4.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test5-fn-suppr-report-5.txt",
     "output/test-diff-suppr/test5-fn-suppr-report-5.txt",
   },
@@ -304,7 +304,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test6-fn-suppr-report-0.txt",
     "output/test-diff-suppr/test6-fn-suppr-report-0.txt",
   },
@@ -314,7 +314,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-redundant",
+    "--no-default-suppression --no-redundant",
     "data/test-diff-suppr/test6-fn-suppr-report-0-1.txt",
     "output/test-diff-suppr/test6-fn-suppr-report-0-1.txt",
   },
@@ -324,7 +324,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test6-fn-suppr-0.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test6-fn-suppr-report-1.txt",
     "output/test-diff-suppr/test6-fn-suppr-report-1.txt",
   },
@@ -334,7 +334,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test6-fn-suppr-1.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test6-fn-suppr-report-2.txt",
     "output/test-diff-suppr/test6-fn-suppr-report-2.txt",
   },
@@ -344,7 +344,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test6-fn-suppr-2.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test6-fn-suppr-report-3.txt",
     "output/test-diff-suppr/test6-fn-suppr-report-3.txt",
   },
@@ -354,7 +354,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test7-var-suppr-report-0.txt",
     "output/test-diff-suppr/test7-var-suppr-report-0.txt"
   },
@@ -364,7 +364,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test7-var-suppr-1.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test7-var-suppr-report-1.txt",
     "output/test-diff-suppr/test7-var-suppr-report-1.txt"
   },
@@ -374,7 +374,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test7-var-suppr-2.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test7-var-suppr-report-2.txt",
     "output/test-diff-suppr/test7-var-suppr-report-2.txt"
   },
@@ -384,7 +384,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test7-var-suppr-3.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test7-var-suppr-report-3.txt",
     "output/test-diff-suppr/test7-var-suppr-report-3.txt"
   },
@@ -394,7 +394,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test7-var-suppr-4.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test7-var-suppr-report-4.txt",
     "output/test-diff-suppr/test7-var-suppr-report-4.txt"
   },
@@ -404,7 +404,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test7-var-suppr-5.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test7-var-suppr-report-5.txt",
     "output/test-diff-suppr/test7-var-suppr-report-5.txt"
   },
@@ -414,7 +414,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test7-var-suppr-6.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test7-var-suppr-report-6.txt",
     "output/test-diff-suppr/test7-var-suppr-report-6.txt"
   },
@@ -424,7 +424,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test7-var-suppr-7.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test7-var-suppr-report-7.txt",
     "output/test-diff-suppr/test7-var-suppr-report-7.txt"
   },
@@ -434,7 +434,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test7-var-suppr-8.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test7-var-suppr-report-8.txt",
     "output/test-diff-suppr/test7-var-suppr-report-8.txt"
   },
@@ -444,7 +444,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test8-redundant-fn-report-0.txt",
     "output/test-diff-suppr/test8-redundant-fn-report-0.txt"
   },
@@ -454,7 +454,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-show-locs --redundant",
+    "--no-default-suppression --no-show-locs --redundant",
     "data/test-diff-suppr/test8-redundant-fn-report-1.txt",
     "output/test-diff-suppr/test8-redundant-fn-report-1.txt"
   },
@@ -464,7 +464,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test9-changed-parm-c-report-0.txt",
     "output/test-diff-suppr/est9-changed-parm-c-report-0.txt"
   },
@@ -474,7 +474,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-show-locs --redundant",
+    "--no-default-suppression --no-show-locs --redundant",
     "data/test-diff-suppr/test9-changed-parm-c-report-1.txt",
     "output/test-diff-suppr/est9-changed-parm-c-report-1.txt"
   },
@@ -484,7 +484,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test10-changed-parm-c-report-0.txt",
     "output/test-diff-suppr/test10-changed-parm-c-report-0.txt"
   },
@@ -494,7 +494,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test11-add-data-member-report-0.txt",
     "output/test-diff-suppr/test11-add-data-member-report-0.txt"
   },
@@ -504,7 +504,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test11-add-data-member-0.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test11-add-data-member-report-1.txt",
     "output/test-diff-suppr/test11-add-data-member-report-1.txt"
   },
@@ -514,7 +514,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test11-add-data-member-1.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test11-add-data-member-report-1.txt",
     "output/test-diff-suppr/test11-add-data-member-report-1.txt"
   },
@@ -524,7 +524,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test11-add-data-member-2.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test11-add-data-member-report-1.txt",
     "output/test-diff-suppr/test11-add-data-member-report-1.txt"
   },
@@ -534,7 +534,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test11-add-data-member-3.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test11-add-data-member-report-1.txt",
     "output/test-diff-suppr/test11-add-data-member-report-1.txt"
   },
@@ -544,7 +544,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test11-add-data-member-4.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test11-add-data-member-report-1.txt",
     "output/test-diff-suppr/test11-add-data-member-report-1.txt"
   },
@@ -554,7 +554,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test12-add-data-member-report-0.txt",
     "output/test-diff-suppr/test12-add-data-member-report-0.txt"
   },
@@ -564,7 +564,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test12-add-data-member-0.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test12-add-data-member-report-1.txt",
     "output/test-diff-suppr/test12-add-data-member-report-1.txt"
   },
@@ -574,7 +574,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test12-add-data-member-1.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test12-add-data-member-report-2.txt",
     "output/test-diff-suppr/test12-add-data-member-report-2.txt"
   },
@@ -584,7 +584,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test13-suppr-through-pointer-report-0.txt",
     "output/test-diff-suppr/test13-suppr-through-pointer-report-0.txt"
   },
@@ -594,7 +594,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test13-suppr-through-pointer-0.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test13-suppr-through-pointer-report-1.txt",
     "output/test-diff-suppr/test13-suppr-through-pointer-report-1.txt"
   },
@@ -604,7 +604,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test14-suppr-non-redundant-report-0.txt",
     "output/test-diff-suppr/test14-suppr-non-redundant-report-0.txt"
   },
@@ -614,7 +614,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test14-suppr-non-redundant-0.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test14-suppr-non-redundant-report-1.txt",
     "output/test-diff-suppr/test14-suppr-non-redundant-report-1.txt"
   },
@@ -624,7 +624,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test15-suppr-added-fn-report-0.txt",
     "output/test-diff-suppr/test15-suppr-added-fn-report-0.txt"
   },
@@ -634,7 +634,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test15-suppr-added-fn-0.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test15-suppr-added-fn-report-1.txt",
     "output/test-diff-suppr/test15-suppr-added-fn-report-1.txt"
   },
@@ -644,7 +644,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test15-suppr-added-fn-1.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test15-suppr-added-fn-report-2.txt",
     "output/test-diff-suppr/test15-suppr-added-fn-report-2.txt"
   },
@@ -654,7 +654,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test15-suppr-added-fn-2.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test15-suppr-added-fn-report-3.txt",
     "output/test-diff-suppr/test15-suppr-added-fn-report-3.txt"
   },
@@ -664,7 +664,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test15-suppr-added-fn-3.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test15-suppr-added-fn-report-4.txt",
     "output/test-diff-suppr/test15-suppr-added-fn-report-4.txt"
   },
@@ -674,7 +674,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test15-suppr-added-fn-4.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test15-suppr-added-fn-report-5.txt",
     "output/test-diff-suppr/test15-suppr-added-fn-report-5.txt"
   },
@@ -684,7 +684,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test16-suppr-removed-fn-report-0.txt",
     "output/test-diff-suppr/test16-suppr-removed-fn-report-0.txt"
   },
@@ -694,7 +694,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test16-suppr-removed-fn-0.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test16-suppr-removed-fn-report-1.txt",
     "output/test-diff-suppr/test16-suppr-removed-fn-report-1.txt"
   },
@@ -704,7 +704,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test16-suppr-removed-fn-1.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test16-suppr-removed-fn-report-2.txt",
     "output/test-diff-suppr/test16-suppr-removed-fn-report-2.txt"
   },
@@ -714,7 +714,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test16-suppr-removed-fn-2.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test16-suppr-removed-fn-report-3.txt",
     "output/test-diff-suppr/test16-suppr-removed-fn-report-3.txt"
   },
@@ -724,7 +724,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test16-suppr-removed-fn-3.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test16-suppr-removed-fn-report-4.txt",
     "output/test-diff-suppr/test16-suppr-removed-fn-report-4.txt"
   },
@@ -734,7 +734,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test17-suppr-added-var-report-0.txt",
     "output/test-diff-suppr/test17-suppr-added-var-report-0.txt"
   },
@@ -744,7 +744,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test17-suppr-added-var-0.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test17-suppr-added-var-report-1.txt",
     "output/test-diff-suppr/test17-suppr-added-var-report-1.txt"
   },
@@ -754,7 +754,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test17-suppr-added-var-1.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test17-suppr-added-var-report-2.txt",
     "output/test-diff-suppr/test17-suppr-added-var-report-2.txt"
   },
@@ -764,7 +764,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test17-suppr-added-var-2.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test17-suppr-added-var-report-3.txt",
     "output/test-diff-suppr/test17-suppr-added-var-report-3.txt"
   },
@@ -774,7 +774,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test17-suppr-added-var-3.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test17-suppr-added-var-report-4.txt",
     "output/test-diff-suppr/test17-suppr-added-var-report-4.txt"
   },
@@ -784,7 +784,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test17-suppr-added-var-4.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test17-suppr-added-var-report-5.txt",
     "output/test-diff-suppr/test17-suppr-added-var-report-5.txt"
   },
@@ -794,7 +794,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test18-suppr-removed-var-report-0.txt",
     "output/test-diff-suppr/test18-suppr-removed-var-report-0.txt"
   },
@@ -804,7 +804,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test18-suppr-removed-var-0.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test18-suppr-removed-var-report-1.txt",
     "output/test-diff-suppr/test18-suppr-removed-var-report-1.txt"
   },
@@ -814,7 +814,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test18-suppr-removed-var-1.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test18-suppr-removed-var-report-2.txt",
     "output/test-diff-suppr/test18-suppr-removed-var-report-2.txt"
   },
@@ -824,7 +824,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test18-suppr-removed-var-2.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test18-suppr-removed-var-report-3.txt",
     "output/test-diff-suppr/test18-suppr-removed-var-report-3.txt"
   },
@@ -834,7 +834,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test18-suppr-removed-var-3.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test18-suppr-removed-var-report-4.txt",
     "output/test-diff-suppr/test18-suppr-removed-var-report-4.txt"
   },
@@ -844,7 +844,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test18-suppr-removed-var-4.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test18-suppr-removed-var-report-5.txt",
     "output/test-diff-suppr/test18-suppr-removed-var-report-5.txt"
   },
@@ -854,7 +854,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test19-suppr-added-fn-sym-report-0.txt",
     "output/test-diff-suppr/test19-suppr-added-fn-sym-report-0.txt"
   },
@@ -864,7 +864,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test19-suppr-added-fn-sym-0.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test19-suppr-added-fn-sym-report-1.txt",
     "output/test-diff-suppr/test19-suppr-added-fn-sym-report-1.txt"
   },
@@ -874,7 +874,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test19-suppr-added-fn-sym-1.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test19-suppr-added-fn-sym-report-2.txt",
     "output/test-diff-suppr/test19-suppr-added-fn-sym-report-2.txt"
   },
@@ -884,7 +884,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test19-suppr-added-fn-sym-2.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test19-suppr-added-fn-sym-report-3.txt",
     "output/test-diff-suppr/test19-suppr-added-fn-sym-report-3.txt"
   },
@@ -894,7 +894,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test19-suppr-added-fn-sym-3.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test19-suppr-added-fn-sym-report-4.txt",
     "output/test-diff-suppr/test19-suppr-added-fn-sym-report-4.txt"
   },
@@ -904,7 +904,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test19-suppr-added-fn-sym-4.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test19-suppr-added-fn-sym-report-5.txt",
     "output/test-diff-suppr/test19-suppr-added-fn-sym-report-5.txt"
   },
@@ -914,7 +914,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test20-suppr-removed-fn-sym-report-0.txt",
     "output/test-diff-suppr/test20-suppr-removed-fn-sym-report-0.txt"
   },
@@ -924,7 +924,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test20-suppr-removed-fn-sym-report-0.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test20-suppr-removed-fn-sym-report-1.txt",
     "output/test-diff-suppr/test20-suppr-removed-fn-sym-report-1.txt"
   },
@@ -934,7 +934,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test20-suppr-removed-fn-sym-report-1.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test20-suppr-removed-fn-sym-report-2.txt",
     "output/test-diff-suppr/test20-suppr-removed-fn-sym-report-2.txt"
   },
@@ -944,7 +944,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test20-suppr-removed-fn-sym-report-2.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test20-suppr-removed-fn-sym-report-3.txt",
     "output/test-diff-suppr/test20-suppr-removed-fn-sym-report-3.txt"
   },
@@ -954,7 +954,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test20-suppr-removed-fn-sym-report-3.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test20-suppr-removed-fn-sym-report-4.txt",
     "output/test-diff-suppr/test20-suppr-removed-fn-sym-report-4.txt"
   },
@@ -964,7 +964,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test20-suppr-removed-fn-sym-report-4.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test20-suppr-removed-fn-sym-report-5.txt",
     "output/test-diff-suppr/test20-suppr-removed-fn-sym-report-5.txt"
   },
@@ -974,7 +974,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test21-suppr-added-var-sym-report-0.txt",
     "output/test-diff-suppr/test21-suppr-added-var-sym-report-0.txt"
   },
@@ -984,7 +984,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test21-suppr-added-var-sym-0.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test21-suppr-added-var-sym-report-1.txt",
     "output/test-diff-suppr/test21-suppr-added-var-sym-report-1.txt"
   },
@@ -994,7 +994,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test21-suppr-added-var-sym-1.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test21-suppr-added-var-sym-report-2.txt",
     "output/test-diff-suppr/test21-suppr-added-var-sym-report-2.txt"
   },
@@ -1004,7 +1004,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test21-suppr-added-var-sym-2.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test21-suppr-added-var-sym-report-3.txt",
     "output/test-diff-suppr/test21-suppr-added-var-sym-report-3.txt"
   },
@@ -1014,7 +1014,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test21-suppr-added-var-sym-3.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test21-suppr-added-var-sym-report-4.txt",
     "output/test-diff-suppr/test21-suppr-added-var-sym-report-4.txt"
   },
@@ -1024,7 +1024,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test21-suppr-added-var-sym-4.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test21-suppr-added-var-sym-report-5.txt",
     "output/test-diff-suppr/test21-suppr-added-var-sym-report-5.txt"
   },
@@ -1034,7 +1034,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test22-suppr-removed-var-sym-report-0.txt",
     "output/test-diff-suppr/test22-suppr-removed-var-sym-report-0.txt"
   },
@@ -1044,7 +1044,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test22-suppr-removed-var-sym-0.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test22-suppr-removed-var-sym-report-1.txt",
     "output/test-diff-suppr/test22-suppr-removed-var-sym-report-1.txt"
   },
@@ -1054,7 +1054,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test22-suppr-removed-var-sym-1.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test22-suppr-removed-var-sym-report-2.txt",
     "output/test-diff-suppr/test22-suppr-removed-var-sym-report-2.txt"
   },
@@ -1064,7 +1064,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test22-suppr-removed-var-sym-2.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test22-suppr-removed-var-sym-report-3.txt",
     "output/test-diff-suppr/test22-suppr-removed-var-sym-report-3.txt"
   },
@@ -1074,7 +1074,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test22-suppr-removed-var-sym-3.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test22-suppr-removed-var-sym-report-4.txt",
     "output/test-diff-suppr/test22-suppr-removed-var-sym-report-4.txt"
   },
@@ -1084,7 +1084,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test23-alias-filter-report-0.txt",
     "output/test-diff-suppr/test23-alias-filter-report-0.txt"
   },
@@ -1094,7 +1094,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test23-alias-filter-0.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test23-alias-filter-report-1.txt",
     "output/test-diff-suppr/test23-alias-filter-report-1.txt"
   },
@@ -1104,7 +1104,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test23-alias-filter-1.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test23-alias-filter-report-2.txt",
     "output/test-diff-suppr/test23-alias-filter-report-2.txt"
   },
@@ -1114,7 +1114,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test23-alias-filter-2.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test23-alias-filter-report-3.txt",
     "output/test-diff-suppr/test23-alias-filter-report-3.txt"
   },
@@ -1124,7 +1124,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test23-alias-filter-4.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test23-alias-filter-report-5.txt",
     "output/test-diff-suppr/test23-alias-filter-report-5.txt"
   },
@@ -1134,7 +1134,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test24-soname-suppr-0.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test24-soname-report-0.txt",
     "output/test-diff-suppr/test24-soname-report-0.txt"
   },
@@ -1144,7 +1144,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test24-soname-suppr-1.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test24-soname-report-1.txt",
     "output/test-diff-suppr/test24-soname-report-1.txt"
   },
@@ -1154,7 +1154,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test24-soname-suppr-2.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test24-soname-report-2.txt",
     "output/test-diff-suppr/test24-soname-report-2.txt"
   },
@@ -1164,7 +1164,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test24-soname-suppr-3.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test24-soname-report-3.txt",
     "output/test-diff-suppr/test24-soname-report-3.txt"
   },
@@ -1174,7 +1174,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test24-soname-suppr-4.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test24-soname-report-4.txt",
     "output/test-diff-suppr/test24-soname-report-4.txt"
   },
@@ -1184,7 +1184,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test24-soname-suppr-5.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test24-soname-report-5.txt",
     "output/test-diff-suppr/test24-soname-report-5.txt"
   },
@@ -1194,7 +1194,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test24-soname-suppr-6.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test24-soname-report-6.txt",
     "output/test-diff-suppr/test24-soname-report-6.txt"
   },
@@ -1204,7 +1204,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test24-soname-suppr-7.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test24-soname-report-7.txt",
     "output/test-diff-suppr/test24-soname-report-7.txt"
   },
@@ -1214,7 +1214,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test24-soname-suppr-8.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test24-soname-report-8.txt",
     "output/test-diff-suppr/test24-soname-report-8.txt"
   },
@@ -1224,7 +1224,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test24-soname-suppr-9.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test24-soname-report-9.txt",
     "output/test-diff-suppr/test24-soname-report-9.txt"
   },
@@ -1234,7 +1234,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test24-soname-suppr-10.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test24-soname-report-10.txt",
     "output/test-diff-suppr/test24-soname-report-10.txt"
   },
@@ -1244,7 +1244,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test24-soname-suppr-11.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test24-soname-report-11.txt",
     "output/test-diff-suppr/test24-soname-report-11.txt"
   },
@@ -1254,7 +1254,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test24-soname-suppr-12.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test24-soname-report-12.txt",
     "output/test-diff-suppr/test24-soname-report-12.txt"
   },
@@ -1264,7 +1264,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test24-soname-suppr-13.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test24-soname-report-13.txt",
     "output/test-diff-suppr/test24-soname-report-13.txt"
   },
@@ -1274,7 +1274,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test24-soname-suppr-13.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test24-soname-report-13.txt",
     "output/test-diff-suppr/test24-soname-report-13.txt"
   },
@@ -1284,7 +1284,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test24-soname-suppr-14.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test24-soname-report-14.txt",
     "output/test-diff-suppr/test24-soname-report-14.txt"
   },
@@ -1294,7 +1294,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test24-soname-suppr-15.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test24-soname-report-15.txt",
     "output/test-diff-suppr/test24-soname-report-15.txt"
   },
@@ -1304,7 +1304,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test24-soname-suppr-16.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test24-soname-report-16.txt",
     "output/test-diff-suppr/test24-soname-report-16.txt"
   },
@@ -1314,7 +1314,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test25-typedef-report-0.txt",
     "output/test-diff-suppr/test25-typedef-report-0.txt"
   },
@@ -1324,7 +1324,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test25-typedef-suppr-0.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test25-typedef-report-1.txt",
     "output/test-diff-suppr/test25-typedef-report-1.txt"
   },
@@ -1334,7 +1334,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test26-loc-suppr-report-0.txt",
     "output/test-diff-suppr/test26-loc-suppr-report-0.txt"
   },
@@ -1344,7 +1344,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test26-loc-suppr-0.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test26-loc-suppr-report-1.txt",
     "output/test-diff-suppr/test26-loc-suppr-report-1.txt"
   },
@@ -1354,7 +1354,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test26-loc-suppr-1.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test26-loc-suppr-report-2.txt",
     "output/test-diff-suppr/test26-loc-suppr-report-2.txt"
   },
@@ -1364,7 +1364,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test26-loc-suppr-2.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test26-loc-suppr-report-3.txt",
     "output/test-diff-suppr/test26-loc-suppr-report-3.txt"
   },
@@ -1374,7 +1374,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test27-add-aliased-function-report-0.txt",
     "output/test-diff-suppr/test27-add-aliased-function-report-0.txt"
   },
@@ -1384,7 +1384,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test27-add-aliased-function-0.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test27-add-aliased-function-report-1.txt",
     "output/test-diff-suppr/test27-add-aliased-function-report-1.txt"
   },
@@ -1394,7 +1394,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test27-add-aliased-function-1.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test27-add-aliased-function-report-2.txt",
     "output/test-diff-suppr/test27-add-aliased-function-report-2.txt"
   },
@@ -1404,7 +1404,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test27-add-aliased-function-2.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test27-add-aliased-function-report-3.txt",
     "output/test-diff-suppr/test27-add-aliased-function-report-3.txt"
   },
@@ -1414,7 +1414,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test27-add-aliased-function-3.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test27-add-aliased-function-report-4.txt",
     "output/test-diff-suppr/test27-add-aliased-function-report-4.txt"
   },
@@ -1424,7 +1424,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test27-add-aliased-function-4.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test27-add-aliased-function-report-5.txt",
     "output/test-diff-suppr/test27-add-aliased-function-report-5.txt"
   },
@@ -1434,7 +1434,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test28-add-aliased-function-report-0.txt",
     "output/test-diff-suppr/test28-add-aliased-function-report-0.txt"
   },
@@ -1444,7 +1444,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test28-add-aliased-function-0.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test28-add-aliased-function-report-1.txt",
     "output/test-diff-suppr/test28-add-aliased-function-report-1.txt"
   },
@@ -1454,7 +1454,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test28-add-aliased-function-1.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test28-add-aliased-function-report-2.txt",
     "output/test-diff-suppr/test28-add-aliased-function-report-2.txt"
   },
@@ -1464,7 +1464,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test28-add-aliased-function-2.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test28-add-aliased-function-report-3.txt",
     "output/test-diff-suppr/test28-add-aliased-function-report-3.txt"
   },
@@ -1474,7 +1474,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test28-add-aliased-function-3.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test28-add-aliased-function-report-4.txt",
     "output/test-diff-suppr/test28-add-aliased-function-report-4.txt"
   },
@@ -1484,7 +1484,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test28-add-aliased-function-4.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test28-add-aliased-function-report-5.txt",
     "output/test-diff-suppr/test28-add-aliased-function-report-5.txt"
   },
@@ -1494,7 +1494,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test28-add-aliased-function-5.suppr",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test28-add-aliased-function-report-6.txt",
     "output/test-diff-suppr/test28-add-aliased-function-report-6.txt"
   },
@@ -1504,7 +1504,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test29-suppr-0.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test29-soname-report-0.txt",
     "output/test-diff-suppr/test29-soname-report-0.txt"
   },
@@ -1514,7 +1514,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test29-suppr-1.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test29-soname-report-1.txt",
     "output/test-diff-suppr/test29-soname-report-1.txt"
   },
@@ -1524,7 +1524,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test29-suppr-2.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test29-soname-report-2.txt",
     "output/test-diff-suppr/test29-soname-report-2.txt"
   },
@@ -1534,7 +1534,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test29-suppr-3.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test29-soname-report-3.txt",
     "output/test-diff-suppr/test29-soname-report-3.txt"
   },
@@ -1544,7 +1544,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test29-suppr-4.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test29-soname-report-4.txt",
     "output/test-diff-suppr/test29-soname-report-4.txt"
   },
@@ -1554,7 +1554,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test29-suppr-5.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test29-soname-report-5.txt",
     "output/test-diff-suppr/test29-soname-report-5.txt"
   },
@@ -1564,7 +1564,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test29-suppr-6.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test29-soname-report-6.txt",
     "output/test-diff-suppr/test29-soname-report-6.txt"
   },
@@ -1574,7 +1574,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test29-suppr-7.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test29-soname-report-7.txt",
     "output/test-diff-suppr/test29-soname-report-7.txt"
   },
@@ -1584,7 +1584,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "data/test-diff-suppr/test29-suppr-8.txt",
-    "--no-show-locs --no-redundant",
+    "--no-default-suppression --no-show-locs --no-redundant",
     "data/test-diff-suppr/test29-soname-report-8.txt",
     "output/test-diff-suppr/test29-soname-report-8.txt"
   },
@@ -1594,7 +1594,7 @@ InOutSpec in_out_specs[] =
     "",
     "",
     "",
-    "",
+    "--no-default-suppression",
     "data/test-diff-suppr/test30-report-0.txt",
     "output/test-diff-suppr/test30-report-0.txt"
   },
@@ -1604,7 +1604,7 @@ InOutSpec in_out_specs[] =
     "data/test-diff-suppr/test30-include-dir-v0",
     "data/test-diff-suppr/test30-include-dir-v1",
     "",
-    "",
+    "--no-default-suppression",
     "data/test-diff-suppr/test30-report-1.txt",
     "output/test-diff-suppr/test30-report-1.txt"
   },
index 399f38b7826312f4c5a41286d64792ced93058c7..26d9258a3adcdd82209be84c80e7f45256568225 100644 (file)
@@ -56,6 +56,8 @@ using abigail::tools_utils::emit_prefix;
 using abigail::tools_utils::check_file;
 using abigail::tools_utils::guess_file_type;
 using abigail::tools_utils::gen_suppr_spec_from_headers;
+using abigail::tools_utils::load_default_system_suppressions;
+using abigail::tools_utils::load_default_user_suppressions;
 using abigail::tools_utils::abidiff_status;
 
 struct options
@@ -73,6 +75,7 @@ struct options
   vector<string>       keep_var_regex_patterns;
   string               headers_dir1;
   string               headers_dir2;
+  bool                 no_default_supprs;
   bool                 no_arch;
   bool                 show_stats_only;
   bool                 show_symtabs;
@@ -100,6 +103,7 @@ struct options
     : display_usage(),
       display_version(),
       missing_operand(),
+      no_default_supprs(),
       no_arch(),
       show_stats_only(),
       show_symtabs(),
@@ -137,6 +141,8 @@ display_usage(const string& prog_name, ostream& out)
     << " --headers-dir2|--hd2 <path>  the path headers of file2\n"
     << " --stat  only display the diff stats\n"
     << " --symtabs  only display the symbol tables of the corpora\n"
+    << " --no-default-suppression  don't load any "
+       "default suppression specification\n"
     << " --no-architecture  do not take architecture in account\n"
     << " --deleted-fns  display deleted public functions\n"
     << " --changed-fns  display changed public functions\n"
@@ -269,6 +275,8 @@ parse_command_line(int argc, char* argv[], options& opts)
          opts.display_usage = true;
          return true;
        }
+      else if (!strcmp(argv[i], "--no-default-suppression"))
+       opts.no_default_supprs = true;
       else if (!strcmp(argv[i], "--no-architecture"))
        opts.no_arch = true;
       else if (!strcmp(argv[i], "--deleted-fns"))
@@ -526,6 +534,15 @@ set_diff_context_from_opts(diff_context_sptr ctxt,
     read_suppressions(*i, supprs);
   ctxt->add_suppressions(supprs);
 
+  if (!opts.no_default_supprs && opts.suppression_paths.empty())
+    {
+      // Load the default system and user suppressions.
+      suppressions_type& supprs = ctxt->suppressions();
+
+      load_default_system_suppressions(supprs);
+      load_default_user_suppressions(supprs);
+    }
+
   if (!opts.headers_dir1.empty())
     {
       // Generate suppression specification to avoid showing ABI
index fea07a48cbd3c6862444ed7b837a77c917fb0f93..d08af56ef2ec9abadb486c6eab76674593693636 100644 (file)
@@ -100,6 +100,10 @@ using abigail::tools_utils::file_type;
 using abigail::tools_utils::make_path_absolute;
 using abigail::tools_utils::base_name;
 using abigail::tools_utils::gen_suppr_spec_from_headers;
+using abigail::tools_utils::get_default_system_suppression_file_path;
+using abigail::tools_utils::get_default_user_suppression_file_path;
+using abigail::tools_utils::load_default_system_suppressions;
+using abigail::tools_utils::load_default_user_suppressions;
 using abigail::tools_utils::abidiff_status;
 using abigail::ir::corpus_sptr;
 using abigail::comparison::diff_context;
@@ -164,6 +168,7 @@ public:
   string       debug_package2;
   string       devel_package1;
   string       devel_package2;
+  bool         no_default_suppression;
   bool         keep_tmp_files;
   bool         compare_dso_only;
   bool         show_linkage_names;
@@ -181,6 +186,7 @@ public:
       missing_operand(),
       abignore(true),
       parallel(true),
+      no_default_suppression(),
       keep_tmp_files(),
       compare_dso_only(),
       show_linkage_names(true),
@@ -1868,6 +1874,8 @@ parse_command_line(int argc, char* argv[], options& opts)
            abigail::tools_utils::make_path_absolute(argv[j]).get();
           ++i;
         }
+      else if (!strcmp(argv[i], "--no-default-suppression"))
+       opts.no_default_suppression = true;
       else if (!strcmp(argv[i], "--keep-tmp-files"))
        opts.keep_tmp_files = true;
       else if (!strcmp(argv[i], "--dso-only"))
@@ -1966,6 +1974,20 @@ main(int argc, char* argv[])
       return 0;
     }
 
+    if (!opts.no_default_suppression && opts.suppression_paths.empty())
+    {
+      // Load the default system and user suppressions.
+      string default_system_suppr_file =
+       get_default_system_suppression_file_path();
+      if (file_exists(default_system_suppr_file))
+       opts.suppression_paths.push_back(default_system_suppr_file);
+
+      string default_user_suppr_file =
+       get_default_user_suppression_file_path();
+      if (file_exists(default_user_suppr_file))
+       opts.suppression_paths.push_back(default_user_suppr_file);
+    }
+
   if (!maybe_check_suppression_files(opts))
     return (abigail::tools_utils::ABIDIFF_USAGE_ERROR
            | abigail::tools_utils::ABIDIFF_ERROR);
index 75ceefa509cf28d411f6c86d00099de4d66d170c..a6abdf151b2bbaf22ee7a638a90838b7ccae55e7 100755 (executable)
@@ -699,6 +699,7 @@ def abipkgdiff(pkg_info1, pkg_info2):
     """
     abipkgdiff_tool = build_path_to_abipkgdiff();
     cmd = [abipkgdiff_tool,
+           '--no-default-suppression' if global_config.no_default_suppr else '',
            '--dso-only' if global_config.dso_only else '',
            '--d1', pkg_info1.debuginfo_package.downloaded_file,
            '--d2', pkg_info2.debuginfo_package.downloaded_file,
@@ -1047,6 +1048,12 @@ def build_commandline_args_parser():
         default='',
         help="The path to the 'abipkgtool' command to use. "
              "By default use the one found in $PATH.")
+    parser.add_argument(
+        '--no-default-suppression',
+        required=False,
+        action='store_true',
+        dest='no_default_suppr',
+        help='Do not load default suppression specifications')
     return parser
 
 
This page took 0.47778 seconds and 5 git commands to generate.