libabigail/tests/test-abidiff-exit.cc
Matthias Maennich 58488c5f31 Replace individual license references with SPDX Identifiers
This patch replaces license headers with SPDX identifiers in all files
containing license headers.  For each file, the SPDX identifier
formally represents its current license.  Note that the list of SPDX
identifiers is available on the SPDX web site at
https://spdx.org/licenses.

For autoconf-archive/ax_prog_python_version.m4 however, there is a
little catch.  Dodji Seketeli wrote this ax_check_python_modules.m4.
Just like the other autoconf-archive macros, it makes sense to have it
under the FSF All Permissive license.  Actually, the terms of that
license was already in the file but then the license header was
wrongly set to GPLv2 with autoconf exception.  So I fixed that in this
commit by setting the SPDX identifier to FSFAP.

	* abigail.m4: Replace the license header with the SPDX identifier
	GPL-3.0-or-later WITH GCC-exception-3.1
	* autoconf-archive/ax_check_python_modules.m4: Correctly set the
	SPDX identifier to FSFAP.
	* autoconf-archive/ax_compare_version.m4: Replace the license
	header with the SPDX identifier FSFAP.
	* autoconf-archive/ax_prog_python_version.m4: Likewise.
	header with the SPDX identifier FSFAP.
	* autoconf-archive/ax_valgrind_check.m4: Likewise.
	* gen-changelog.py: Replace the license header with the SPDX
	identifier LGPL-2.0-or-later.
	* include/abg-comp-filter.h: Replace the license header with the
	SPDX identifier LGPL-3.0-or-later.
	* include/abg-comparison.h: Likewise.
	* include/abg-config.h: Likewise.
	* include/abg-corpus.h: Likewise.
	* include/abg-cxx-compat.h: Replace the license header with the
	SPDX identifier LGPL-2.0-or-later.
	* include/abg-diff-utils.h: Replace the license header with the
	SPDX identifier LGPL-3.0-or-later
	* include/abg-dwarf-reader.h: Likewise.
	* include/abg-fwd.h: Likewise.
	* include/abg-hash.h: Likewise.
	* include/abg-ini.h: Likewise.
	* include/abg-interned-str.h: Likewise.
	* include/abg-ir.h: Likewise.
	* include/abg-libxml-utils.h: Likewise.
	* include/abg-libzip-utils.h: Likewise.
	* include/abg-reader.h: Likewise.
	* include/abg-regex.h: Likewise.
	* include/abg-reporter.h: Likewise.
	* include/abg-sptr-utils.h: Likewise.
	* include/abg-suppression.h: Likewise.
	* include/abg-tools-utils.h: Likewise.
	* include/abg-traverse.h: Likewise.
	* include/abg-viz-common.h: Likewise.
	* include/abg-viz-dot.h: Likewise.
	* include/abg-viz-svg.h: Likewise.
	* include/abg-workers.h: Likewise.
	* include/abg-writer.h: Likewise.
	* install-sh: Replace the license header with the SPDX identifier MIT.
	* ltmain.sh: Replace the license header with the SPDX identifier
	GPL-2.0-or-later.  Note that this file has the libtool special
	exception which allows us to redistribute it under the general
	license of the project.
	* src/abg-comp-filter.cc: Replace the license header with the SPDX
	* src/abg-comparison-priv.h: Likewise.
	* src/abg-comparison.cc: Likewise.
	* src/abg-config.cc: Likewise.
	* src/abg-corpus-priv.h: Likewise.
	* src/abg-corpus.cc: Likewise.
	* src/abg-default-reporter.cc: Likewise.
	* src/abg-diff-utils.cc: Likewise.
	* src/abg-dwarf-reader.cc: Likewise.
	* src/abg-elf-helpers.cc: Likewise.
	* src/abg-elf-helpers.h: Likewise.
	* src/abg-regex.cc: Likewise.
	* src/abg-hash.cc: Likewise.
	* src/abg-ini.cc: Likewise.
	* src/abg-internal.h: Likewise.
	* src/abg-ir-priv.h: Likewise.
	* src/abg-ir.cc: Likewise.
	* src/abg-leaf-reporter.cc: Likewise.
	* src/abg-libxml-utils.cc: Likewise.
	* src/abg-libzip-utils.cc: Likewise.
	* src/abg-reader.cc: Likewise.
	* src/abg-reporter-priv.cc: Likewise.
	* src/abg-reporter-priv.h: Likewise.
	* src/abg-sptr-utils.cc: Likewise.
	* src/abg-suppression-priv.h: Likewise.
	* src/abg-suppression.cc: Likewise.
	* src/abg-tools-utils.cc: Likewise.
	* src/abg-traverse.cc: Likewise.
	* src/abg-viz-common.cc: Likewise.
	* src/abg-viz-dot.cc: Likewise.
	* src/abg-viz-svg.cc: Likewise.
	* src/abg-workers.cc: Likewise.
	* src/abg-writer.cc: Likewise.
	* tests/lib/catch.cc: Likewise.
	* tests/lib/catch.hpp: Add an SPDX identifier BSL-1.0.
	* tests/mockfedabipkgdiff.in: Replace the license header with the
	SPDX identifier GPL-3.0-or-later.
	* tests/print-diff-tree.cc: Likewise.
	* tests/runtestfedabipkgdiff.py.in: Replaace the license header
	with the SPDW identifier GPL-3.0-or-later.
	* tests/test-abicompat.cc: Replace the license header with the
	SPDX identifier LGPL-3.0-or-later.
	* tests/test-abidiff-exit.cc: Likewise.
	* tests/test-abidiff.cc: Likewise.
	* tests/test-alt-dwarf-file.cc: Likewise.
	* tests/test-annotate.cc: Likewise.
	* tests/test-cxx-compat.cc: Likewise.
	* tests/test-core-diff.cc: Likewise.
	* tests/test-diff-dwarf-abixml.cc: Likewise.
	* tests/test-diff-dwarf.cc: Likewise.
	* tests/test-diff-filter.cc: Likewise.
	* tests/test-diff-pkg.cc: Likewise.
	* tests/test-diff-suppr.cc: Likewise.
	* tests/test-diff2.cc: Likewise.
	* tests/test-dot.cc: Replace the license header with the
	SPDX identifier GPL-3.0-with-GCC-exception.
	* tests/test-elf-helpers.cc: Replace the license header with the
	SPDX identifier LGPL-3.0-or-later.
	* tests/test-ini.cc: Likewise.
	* tests/test-ir-walker.cc: Likewise.
	* tests/test-kmi-whitelist.cc: Likewise.
	* tests/test-lookup-syms.cc: Likewise.
	* tests/test-read-dwarf.cc: Likewise.
	* tests/test-read-write.cc: Likewise.
	* tests/test-svg.cc: Replace the license header with the SPDX
	identifier GPL-3.0-with-GCC-exception.
	* tests/test-symtab.cc: Replace the license header with the SPDX
	identifier LGPL-3.0-or-later.
	* tests/test-tools-utils.cc: Likewise.
	* tests/test-types-stability.cc: Likewise.
	* tests/test-utils.cc: Likewise.
	* tests/test-utils.h: Likewise.
	* tests/test-write-read-archive.cc: Likewise.
	* tools/abiar.cc: Likewise.
	* tools/abicompat.cc: Likewise.
	* tools/abidiff.cc: Likewise.
	* tools/abidw.cc: Likewise.
	* tools/abilint.cc: Likewise.
	* tools/abipkgdiff.cc: Likewise.
	* tools/abisym.cc: Likewise.
	* tools/binilint.cc: Likewise.
	* tools/fedabipkgdiff: Replace the license header with the
	SPDX identifier GPL-3.0-or-later.
	* tools/kmidiff.cc: Likewise.

Signed-off-by: Benjamin De Kosnik <bkoz@gnu.org>
Signed-off-by: Ben Woodard <woodard@redhat.com>
Signed-off-by: Chenxiong Qi <cqi@redhat.com>
Signed-off-by: Dodji Seketeli <dodji@redhat.com>
Signed-off-by: Giuliano Procida <gprocida@google.com>
Signed-off-by: Jan Engelhardt <jengelh@inai.de>
Signed-off-by: Jessica Yu <jeyu@kernel.org>
Signed-off-by: Jonathan Wakely <jwakely@redhat.com>
Signed-off-by: Mark Wielaard <mark@klomp.org>
Signed-off-by: Matthias Klose <doko@ubuntu.com>
Signed-off-by: Matthias Maennich <maennich@google.com>
Signed-off-by: Ondrej Oprala <ondrej.oprala@gmail.com>
Signed-off-by: Roland McGrath <roland@hack.frob.com>
Signed-off-by: Sinny Kumari <ksinny@gmail.com>
Signed-off-by: Slava Barinov <v.barinov@samsung.com>
2020-12-02 11:44:13 +01:00

455 lines
14 KiB
C++

// SPDX-License-Identifier: LGPL-3.0-or-later
// -*- Mode: C++ -*-
//
// Copyright (C) 2016-2020 Red Hat, Inc.
//
// Author: Dodji Seketeli
/// @file
///
/// This program runs abidiff between input files and checks that
/// the exit code of the abidiff is the one we expect.
///
/// The set of input files and reference reports to consider should be
/// present in the source distribution.
/// This is an aggregate that specifies where a test shall get its
/// input from and where it shall write its ouput to.
#include <sys/wait.h>
#include <cstring>
#include <string>
#include <vector>
#include <fstream>
#include <iostream>
#include <cstdlib>
#include "abg-tools-utils.h"
#include "test-utils.h"
using abigail::tools_utils::abidiff_status;
struct InOutSpec
{
const char* in_elfv0_path;
const char* in_elfv1_path;
const char* in_suppr_path;
const char* in_elfv0_headers_dirs;
const char* in_elfv1_headers_dirs;
const char* abidiff_options;
abidiff_status status;
const char* in_report_path;
const char* out_report_path;
};// end struct InOutSpec;
InOutSpec in_out_specs[] =
{
{
"data/test-abidiff-exit/test1-voffset-change-v0.o",
"data/test-abidiff-exit/test1-voffset-change-v1.o",
"",
"",
"",
"--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",
"output/test-abidiff-exit/test1-voffset-change-report0.txt"
},
{
"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-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"
},
{
"data/test-abidiff-exit/test2-filtered-removed-fns-v0.o",
"data/test-abidiff-exit/test2-filtered-removed-fns-v1.o",
"",
"",
"",
"--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",
"output/test-abidiff-exit/test2-filtered-removed-fns-report0.txt"
},
{
"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-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"
},
{
"data/test-abidiff-exit/test-loc-v0.bi",
"data/test-abidiff-exit/test-loc-v1.bi",
"",
"",
"",
"",
abigail::tools_utils::ABIDIFF_ABI_CHANGE,
"data/test-abidiff-exit/test-loc-with-locs-report.txt",
"output/test-abidiff-exit/test-loc-with-locs-report.txt"
},
{
"data/test-abidiff-exit/test-loc-v0.bi",
"data/test-abidiff-exit/test-loc-v1.bi",
"",
"",
"",
"--no-show-locs",
abigail::tools_utils::ABIDIFF_ABI_CHANGE,
"data/test-abidiff-exit/test-loc-without-locs-report.txt",
"output/test-abidiff-exit/test-loc-without-locs-report.txt"
},
{
"data/test-abidiff-exit/test-no-stray-comma-v0.o",
"data/test-abidiff-exit/test-no-stray-comma-v1.o",
"",
"",
"",
"--leaf-changes-only",
abigail::tools_utils::ABIDIFF_ABI_CHANGE,
"data/test-abidiff-exit/test-no-stray-comma-report.txt",
"output/test-abidiff-exit/test-no-stray-comma-report.txt"
},
{
"data/test-abidiff-exit/test-leaf-stats-v0.o",
"data/test-abidiff-exit/test-leaf-stats-v1.o",
"",
"",
"",
"--no-show-locs --leaf-changes-only",
abigail::tools_utils::ABIDIFF_ABI_CHANGE,
"data/test-abidiff-exit/test-leaf-stats-report.txt",
"output/test-abidiff-exit/test-leaf-stats-report.txt"
},
{
"data/test-abidiff-exit/test-leaf-more-v0.o",
"data/test-abidiff-exit/test-leaf-more-v1.o",
"",
"",
"",
"--no-show-locs --leaf-changes-only",
abigail::tools_utils::ABIDIFF_ABI_CHANGE
| abigail::tools_utils::ABIDIFF_ABI_INCOMPATIBLE_CHANGE,
"data/test-abidiff-exit/test-leaf-more-report.txt",
"output/test-abidiff-exit/test-leaf-more-report.txt"
},
{
"data/test-abidiff-exit/test-leaf-fun-type-v0.o",
"data/test-abidiff-exit/test-leaf-fun-type-v1.o",
"",
"",
"",
"--no-show-locs --leaf-changes-only",
abigail::tools_utils::ABIDIFF_ABI_CHANGE,
"data/test-abidiff-exit/test-leaf-fun-type-report.txt",
"output/test-abidiff-exit/test-leaf-fun-type-report.txt"
},
{
"data/test-abidiff-exit/test-leaf-redundant-v0.o",
"data/test-abidiff-exit/test-leaf-redundant-v1.o",
"",
"",
"",
"--leaf-changes-only",
abigail::tools_utils::ABIDIFF_ABI_CHANGE,
"data/test-abidiff-exit/test-leaf-redundant-report.txt",
"output/test-abidiff-exit/test-leaf-redundant-report.txt"
},
{
"data/test-abidiff-exit/test-leaf-peeling-v0.o",
"data/test-abidiff-exit/test-leaf-peeling-v1.o",
"",
"",
"",
"--leaf-changes-only",
abigail::tools_utils::ABIDIFF_ABI_CHANGE,
"data/test-abidiff-exit/test-leaf-peeling-report.txt",
"output/test-abidiff-exit/test-leaf-peeling-report.txt"
},
{
"data/test-abidiff-exit/test-leaf-cxx-members-v0.o",
"data/test-abidiff-exit/test-leaf-cxx-members-v1.o",
"",
"",
"",
"--leaf-changes-only",
abigail::tools_utils::ABIDIFF_ABI_CHANGE
| abigail::tools_utils::ABIDIFF_ABI_INCOMPATIBLE_CHANGE,
"data/test-abidiff-exit/test-leaf-cxx-members-report.txt",
"output/test-abidiff-exit/test-leaf-cxx-members-report.txt"
},
{
"data/test-abidiff-exit/test-member-size-v0.o",
"data/test-abidiff-exit/test-member-size-v1.o",
"",
"",
"",
"",
abigail::tools_utils::ABIDIFF_ABI_CHANGE,
"data/test-abidiff-exit/test-member-size-report0.txt",
"output/test-abidiff-exit/test-member-size-report0.txt"
},
{
"data/test-abidiff-exit/test-member-size-v0.o",
"data/test-abidiff-exit/test-member-size-v1.o",
"",
"",
"",
"--leaf-changes-only",
abigail::tools_utils::ABIDIFF_ABI_CHANGE,
"data/test-abidiff-exit/test-member-size-report1.txt",
"output/test-abidiff-exit/test-member-size-report1.txt"
},
{
"data/test-abidiff-exit/test-decl-struct-v0.o",
"data/test-abidiff-exit/test-decl-struct-v1.o",
"",
"",
"",
"--harmless",
abigail::tools_utils::ABIDIFF_ABI_CHANGE,
"data/test-abidiff-exit/test-decl-struct-report.txt",
"output/test-abidiff-exit/test-decl-struct-report.txt"
},
{
"data/test-abidiff-exit/test-fun-param-v0.abi",
"data/test-abidiff-exit/test-fun-param-v1.abi",
"",
"",
"",
"",
abigail::tools_utils::ABIDIFF_ABI_CHANGE,
"data/test-abidiff-exit/test-fun-param-report.txt",
"output/test-abidiff-exit/test-fun-param-report.txt"
},
{
"data/test-abidiff-exit/test-decl-enum-v0.o",
"data/test-abidiff-exit/test-decl-enum-v1.o",
"",
"",
"",
"--harmless",
abigail::tools_utils::ABIDIFF_ABI_CHANGE,
"data/test-abidiff-exit/test-decl-enum-report.txt",
"output/test-abidiff-exit/test-decl-enum-report.txt"
},
{
"data/test-abidiff-exit/test-decl-enum-v0.o",
"data/test-abidiff-exit/test-decl-enum-v1.o",
"",
"",
"",
"",
abigail::tools_utils::ABIDIFF_OK,
"data/test-abidiff-exit/test-decl-enum-report-2.txt",
"output/test-abidiff-exit/test-decl-enum-report-2.txt"
},
{
"data/test-abidiff-exit/test-decl-enum-v0.o",
"data/test-abidiff-exit/test-decl-enum-v1.o",
"",
"",
"",
"--leaf-changes-only",
abigail::tools_utils::ABIDIFF_OK,
"data/test-abidiff-exit/test-decl-enum-report-3.txt",
"output/test-abidiff-exit/test-decl-enum-report-3.txt"
},
{
"data/test-abidiff-exit/test-net-change-v0.o",
"data/test-abidiff-exit/test-net-change-v1.o",
"",
"",
"",
"--no-default-suppression --no-show-locs",
abigail::tools_utils::ABIDIFF_ABI_CHANGE
| abigail::tools_utils::ABIDIFF_ABI_INCOMPATIBLE_CHANGE,
"data/test-abidiff-exit/test-net-change-report0.txt",
"output/test-abidiff-exit/test-net-change-report0.txt"
},
{
"data/test-abidiff-exit/test-net-change-v0.o",
"data/test-abidiff-exit/test-net-change-v1.o",
"data/test-abidiff-exit/test-net-change.abignore",
"",
"",
"--no-default-suppression --no-show-locs",
abigail::tools_utils::ABIDIFF_OK,
"data/test-abidiff-exit/test-net-change-report1.txt",
"output/test-abidiff-exit/test-net-change-report1.txt"
},
{
"data/test-abidiff-exit/test-net-change-v0.o",
"data/test-abidiff-exit/test-net-change-v1.o",
"",
"",
"",
"--no-default-suppression --no-show-locs --leaf-changes-only",
abigail::tools_utils::ABIDIFF_ABI_CHANGE
| abigail::tools_utils::ABIDIFF_ABI_INCOMPATIBLE_CHANGE,
"data/test-abidiff-exit/test-net-change-report2.txt",
"output/test-abidiff-exit/test-net-change-report2.txt"
},
{
"data/test-abidiff-exit/test-net-change-v0.o",
"data/test-abidiff-exit/test-net-change-v1.o",
"data/test-abidiff-exit/test-net-change.abignore",
"",
"",
"--no-default-suppression --no-show-locs --leaf-changes-only",
abigail::tools_utils::ABIDIFF_OK,
"data/test-abidiff-exit/test-net-change-report3.txt",
"output/test-abidiff-exit/test-net-change-report3.txt"
},
{
"data/test-abidiff-exit/test-headers-dirs/test-headers-dir-v0.o",
"data/test-abidiff-exit/test-headers-dirs/test-headers-dir-v1.o",
"",
"data/test-abidiff-exit/test-headers-dirs/headers-a",
"data/test-abidiff-exit/test-headers-dirs/headers-a",
"--no-default-suppression",
abigail::tools_utils::ABIDIFF_OK,
"data/test-abidiff-exit/test-headers-dirs/test-headers-dir-report-1.txt",
"output/test-abidiff-exit/test-headers-dirs/test-headers-dir-report-1.txt"
},
{
"data/test-abidiff-exit/test-headers-dirs/test-headers-dir-v0.o",
"data/test-abidiff-exit/test-headers-dirs/test-headers-dir-v1.o",
"",
"data/test-abidiff-exit/test-headers-dirs/headers-a, "
"data/test-abidiff-exit/test-headers-dirs/headers-b",
"data/test-abidiff-exit/test-headers-dirs/headers-a, "
"data/test-abidiff-exit/test-headers-dirs/headers-b",
"--no-default-suppression",
abigail::tools_utils::ABIDIFF_ABI_CHANGE,
"data/test-abidiff-exit/test-headers-dirs/test-headers-dir-report-2.txt",
"output/test-abidiff-exit/test-headers-dirs/test-headers-dir-report-2.txt"
},
{0, 0, 0 ,0, 0, 0, abigail::tools_utils::ABIDIFF_OK, 0, 0}
};
/// Prefix the strings in a vector of string.
///
/// @param strings the strings to prefix.
///
/// @param prefix the prefix to use.
static void
do_prefix_strings(std::vector<std::string> &strings,
const std::string& prefix)
{
for (std::vector<std::string>::size_type i = 0; i < strings.size(); ++i)
strings[i] = prefix + strings[i];
}
int
main()
{
using std::string;
using std::vector;
using std::cerr;
using abigail::tests::get_src_dir;
using abigail::tests::get_build_dir;
using abigail::tools_utils::ensure_parent_dir_created;
using abigail::tools_utils::split_string;
using abigail::tools_utils::abidiff_status;
bool is_ok = true;
string in_elfv0_path, in_elfv1_path,
in_suppression_path, abidiff_options, abidiff, cmd,
ref_diff_report_path, out_diff_report_path;
vector<string> in_elfv0_headers_dirs, in_elfv1_headers_dirs;
string source_dir_prefix = string(get_src_dir()) + "/tests/";
string build_dir_prefix = string(get_build_dir()) + "/tests/";
for (InOutSpec* s = in_out_specs; s->in_elfv0_path; ++s)
{
in_elfv0_path = source_dir_prefix + s->in_elfv0_path;
in_elfv1_path = source_dir_prefix + s->in_elfv1_path;
split_string(s->in_elfv0_headers_dirs, ",", in_elfv0_headers_dirs);
split_string(s->in_elfv1_headers_dirs, ",", in_elfv1_headers_dirs);
do_prefix_strings(in_elfv0_headers_dirs, source_dir_prefix);
do_prefix_strings(in_elfv1_headers_dirs, source_dir_prefix);
if (s->in_suppr_path && strcmp(s->in_suppr_path, ""))
in_suppression_path = source_dir_prefix + s->in_suppr_path;
else
in_suppression_path.clear();
abidiff_options = s->abidiff_options;
ref_diff_report_path = source_dir_prefix + s->in_report_path;
out_diff_report_path = build_dir_prefix + s->out_report_path;
if (!ensure_parent_dir_created(out_diff_report_path))
{
cerr << "could not create parent directory for "
<< out_diff_report_path;
is_ok = false;
continue;
}
abidiff = string(get_build_dir()) + "/tools/abidiff";
if (!abidiff_options.empty())
abidiff += " " + abidiff_options;
if (!in_elfv0_headers_dirs.empty())
for (vector<string>::const_iterator s = in_elfv0_headers_dirs.begin();
s != in_elfv0_headers_dirs.end();
++s)
abidiff += " --headers-dir1 " + *s;
if (!in_elfv1_headers_dirs.empty())
for (vector<string>::const_iterator s = in_elfv1_headers_dirs.begin();
s != in_elfv1_headers_dirs.end();
++s)
abidiff += " --headers-dir2 " + *s;
if (!in_suppression_path.empty())
abidiff += " --suppressions " + in_suppression_path;
cmd = abidiff + " " + in_elfv0_path + " " + in_elfv1_path;
cmd += " > " + out_diff_report_path;
bool abidiff_ok = true;
int code = system(cmd.c_str());
if (!WIFEXITED(code))
abidiff_ok = false;
else
{
abigail::tools_utils::abidiff_status status =
static_cast<abidiff_status>(WEXITSTATUS(code));
if (status != s->status)
{
cerr << "for command '"
<< cmd
<< "', expected abidiff status to be " << s->status
<< " but instead, got " << status << "\n";
abidiff_ok = false;
}
}
if (abidiff_ok)
{
cmd = "diff -u " + ref_diff_report_path
+ " " + out_diff_report_path;
if (system(cmd.c_str()))
is_ok = false;
}
else
is_ok = false;
}
return !is_ok;
}