public inbox for libabigail@sourceware.org
 help / color / mirror / Atom feed
From: "Giuliano Procida via libabigail" <libabigail@sourceware.org>
To: libabigail@sourceware.org
Cc: dodji@seketeli.org, kernel-team@android.com, gprocida@google.com
Subject: [PATCH v2] Don't ignore options when diffing translation units (.bi files).
Date: Wed, 01 Jan 2020 00:00:00 -0000	[thread overview]
Message-ID: <20200131173324.236096-1-gprocida@google.com> (raw)

	* tests/data/Makefile.am: Add test case files.
	* tests/data/test-abidiff-exit/test-loc-*: New test cases.
	* tests/test-abidiff-exit.cc: Add new test cases.
	* tools/abidiff.cc: Use populated ctxt for translation unit
	diff.

Signed-off-by: Giuliano Procida <gprocida@google.com>
---
 tests/data/Makefile.am                         |  4 ++++
 tests/data/test-abidiff-exit/test-loc-v0.bi    | 13 +++++++++++++
 tests/data/test-abidiff-exit/test-loc-v1.bi    | 13 +++++++++++++
 .../test-loc-with-locs-report.txt              | 12 ++++++++++++
 .../test-loc-without-locs-report.txt           | 12 ++++++++++++
 tests/test-abidiff-exit.cc                     | 18 ++++++++++++++++++
 tools/abidiff.cc                               |  3 +--
 7 files changed, 73 insertions(+), 2 deletions(-)
 create mode 100644 tests/data/test-abidiff-exit/test-loc-v0.bi
 create mode 100644 tests/data/test-abidiff-exit/test-loc-v1.bi
 create mode 100644 tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
 create mode 100644 tests/data/test-abidiff-exit/test-loc-without-locs-report.txt

diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am
index 1ae9d31a..1f574d2e 100644
--- a/tests/data/Makefile.am
+++ b/tests/data/Makefile.am
@@ -103,6 +103,10 @@ test-abidiff-exit/test2-filtered-removed-fns-v1.c \
 test-abidiff-exit/test2-filtered-removed-fns-v0.o \
 test-abidiff-exit/test2-filtered-removed-fns-v1.o \
 test-abidiff-exit/test2-filtered-removed-fns.abignore \
+test-abidiff-exit/test-loc-v0.bi \
+test-abidiff-exit/test-loc-v1.bi \
+test-abidiff-exit/test-loc-with-locs-report.txt \
+test-abidiff-exit/test-loc-without-locs-report.txt \
 \
 test-diff-dwarf/test0-v0.cc		\
 test-diff-dwarf/test0-v0.o			\
diff --git a/tests/data/test-abidiff-exit/test-loc-v0.bi b/tests/data/test-abidiff-exit/test-loc-v0.bi
new file mode 100644
index 00000000..da3a7c64
--- /dev/null
+++ b/tests/data/test-abidiff-exit/test-loc-v0.bi
@@ -0,0 +1,13 @@
+<abi-corpus path='test-loc-v0.o' architecture='elf-amd-x86_64'>
+  <elf-function-symbols>
+    <elf-symbol name='x' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <abi-instr version='1.0' address-size='64' path='test-loc-v0.c' comp-dir-path='/tmp' language='LANG_C99'>
+    <type-decl name='unsigned char' size-in-bits='8' id='type-id-1'/>
+    <type-decl name='void' id='type-id-2'/>
+    <function-decl name='x' mangled-name='x' filepath='test-loc-v0.c' line='1' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='x'>
+      <parameter type-id='type-id-1' name='y' filepath='test-loc-v0.c' line='1' column='1'/>
+      <return type-id='type-id-2'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/tests/data/test-abidiff-exit/test-loc-v1.bi b/tests/data/test-abidiff-exit/test-loc-v1.bi
new file mode 100644
index 00000000..43ac6ecd
--- /dev/null
+++ b/tests/data/test-abidiff-exit/test-loc-v1.bi
@@ -0,0 +1,13 @@
+<abi-corpus path='test-loc-v1.o' architecture='elf-amd-x86_64'>
+  <elf-function-symbols>
+    <elf-symbol name='x' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <abi-instr version='1.0' address-size='64' path='test-loc-v1.c' comp-dir-path='/tmp' language='LANG_C99'>
+    <type-decl name='signed char' size-in-bits='8' id='type-id-1'/>
+    <type-decl name='void' id='type-id-2'/>
+    <function-decl name='x' mangled-name='x' filepath='test-loc-v1.c' line='1' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='x'>
+      <parameter type-id='type-id-1' name='y' filepath='test-loc-v1.c' line='1' column='1'/>
+      <return type-id='type-id-2'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt b/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
new file mode 100644
index 00000000..d62e405e
--- /dev/null
+++ b/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
@@ -0,0 +1,12 @@
+Functions changes summary: 0 Removed, 1 Changed, 0 Added function
+Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
+
+1 function with some indirect sub-type change:
+
+  [C]'function void x(unsigned char)' at test-loc-v1.c:1:1 has some indirect sub-type changes:
+    parameter 1 of type 'unsigned char' changed:
+      type name changed from 'unsigned char' to 'signed char'
+      type size hasn't changed
+
+
+
diff --git a/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt b/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt
new file mode 100644
index 00000000..5a72047e
--- /dev/null
+++ b/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt
@@ -0,0 +1,12 @@
+Functions changes summary: 0 Removed, 1 Changed, 0 Added function
+Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
+
+1 function with some indirect sub-type change:
+
+  [C]'function void x(unsigned char)' has some indirect sub-type changes:
+    parameter 1 of type 'unsigned char' changed:
+      type name changed from 'unsigned char' to 'signed char'
+      type size hasn't changed
+
+
+
diff --git a/tests/test-abidiff-exit.cc b/tests/test-abidiff-exit.cc
index e6df5933..4cef727e 100644
--- a/tests/test-abidiff-exit.cc
+++ b/tests/test-abidiff-exit.cc
@@ -93,6 +93,24 @@ InOutSpec in_out_specs[] =
     "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"
+  },
   {0, 0, 0 ,0,  abigail::tools_utils::ABIDIFF_OK, 0, 0}
 };
 
diff --git a/tools/abidiff.cc b/tools/abidiff.cc
index 1d02f65e..32f793e8 100644
--- a/tools/abidiff.cc
+++ b/tools/abidiff.cc
@@ -1243,8 +1243,7 @@ main(int argc, char* argv[])
 
       if (t1)
 	{
-	  diff_context_sptr diff_ctxt(new diff_context);
-	  translation_unit_diff_sptr diff = compute_diff(t1, t2, diff_ctxt);
+	  translation_unit_diff_sptr diff = compute_diff(t1, t2, ctxt);
 	  if (diff->has_changes())
 	    diff->report(cout);
 	}
-- 
2.25.0.341.g760bfbb309-goog

                 reply	other threads:[~2020-01-31 17:33 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200131173324.236096-1-gprocida@google.com \
    --to=libabigail@sourceware.org \
    --cc=dodji@seketeli.org \
    --cc=gprocida@google.com \
    --cc=kernel-team@android.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).