public inbox for dwz@sourceware.org
 help / color / mirror / Atom feed
* [RFC 10/13][odr, testsuite] Add test-case odr-loc.sh
@ 2019-01-01  0:00 Tom de Vries
  0 siblings, 0 replies; only message in thread
From: Tom de Vries @ 2019-01-01  0:00 UTC (permalink / raw)
  To: dwz, jakub; +Cc: Michael Matz

Hi,

Add a test-case that tests whether --odr works in conjunction with
--devel-ignore-locus.

Any comments?

Thanks,
- Tom

[odr, testsuite] Add test-case odr-loc.sh

2019-12-10  Tom de Vries  <tdevries@suse.de>

	* Makefile (odr-loc): New target.
	(TEST_EXECS): Add odr-loc.
	* testsuite/dwz.tests/odr-loc-2.cc: New test.
	* testsuite/dwz.tests/odr-loc.cc: New test.
	* testsuite/dwz.tests/odr-loc.sh: New test.

---
 Makefile                         |  7 ++++++-
 testsuite/dwz.tests/odr-loc-2.cc | 13 +++++++++++++
 testsuite/dwz.tests/odr-loc.cc   | 18 ++++++++++++++++++
 testsuite/dwz.tests/odr-loc.sh   | 39 +++++++++++++++++++++++++++++++++++++++
 4 files changed, 76 insertions(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index 2ab8405..e15d604 100644
--- a/Makefile
+++ b/Makefile
@@ -31,7 +31,7 @@ TEST_EXECS = hello dw2-restrict py-section-script dwz-for-test min two-typedef \
 	dw2-skip-prologue start implptr-64bit-d2o4a8r8t0 hello-gold-gdb-index \
 	start-gold hello-gnu-pubnames varval $(TEST_EXECS_DWARF_ASM) \
 	odr-struct odr-class odr-union odr-struct-ns odr-class-ns \
-	odr-union-ns 
+	odr-union-ns odr-loc
 
 hello:
 	$(CC) $(TEST_SRC)/hello.c -o $@ -g
@@ -122,6 +122,11 @@ odr-union-ns:
 	$(CXX) $(TEST_SRC)/odr.cc $(TEST_SRC)/odr-2.cc -I$(TEST_SRC) -o $@ -g \
 	  -DKIND=union -DNAMESPACE=1
 
+odr-loc:
+	$(CXX) $(TEST_SRC)/odr-loc.cc $(TEST_SRC)/odr-loc-2.cc -I$(TEST_SRC) \
+	  -o $@ -g
+
+
 # On some systems we need to set and export DEJAGNU to suppress
 # WARNING: Couldn't find the global config file.
 DEJAGNU ?= /dev/null
diff --git a/testsuite/dwz.tests/odr-loc-2.cc b/testsuite/dwz.tests/odr-loc-2.cc
new file mode 100644
index 0000000..39ef5cf
--- /dev/null
+++ b/testsuite/dwz.tests/odr-loc-2.cc
@@ -0,0 +1,13 @@
+struct bbb
+{
+  int member_four;
+};
+struct ccc;
+
+struct aaa
+{
+  struct bbb *member_one;
+  struct ccc *member_two;
+};
+
+struct aaa var2;
diff --git a/testsuite/dwz.tests/odr-loc.cc b/testsuite/dwz.tests/odr-loc.cc
new file mode 100644
index 0000000..10efd75
--- /dev/null
+++ b/testsuite/dwz.tests/odr-loc.cc
@@ -0,0 +1,18 @@
+struct bbb;
+struct ccc {
+  int member_three;
+};
+
+struct aaa
+{
+  struct bbb *member_one;
+  struct ccc *member_two;
+};
+
+struct aaa var1;
+
+int
+main (void)
+{
+  return 0;
+}
diff --git a/testsuite/dwz.tests/odr-loc.sh b/testsuite/dwz.tests/odr-loc.sh
new file mode 100644
index 0000000..4dc8fb3
--- /dev/null
+++ b/testsuite/dwz.tests/odr-loc.sh
@@ -0,0 +1,39 @@
+if ! $execs/dwz-for-test --odr -v 2>/dev/null; then
+    exit 77
+fi
+
+cp $execs/odr-loc 1
+
+for name in aaa bbb ccc; do
+    cnt=$(readelf -wi 1 | grep -c "DW_AT_name.*:.*$name" || true)
+    [ $cnt -eq 2 ]
+done
+
+$execs/dwz-for-test --odr 1
+
+verify-dwarf.sh 1
+
+for name in aaa bbb ccc; do
+    cnt=$(readelf -wi 1 | grep -c "DW_AT_name.*:.*$name" || true)
+    case $name in
+	aaa)
+	    [ $cnt -eq 2 ]
+	    ;;
+	*)
+	    [ $cnt -eq 1 ]
+	    ;;
+    esac
+done
+
+cp $execs/odr-loc 1
+
+$execs/dwz-for-test --odr --devel-ignore-locus 1
+
+verify-dwarf.sh 1
+
+for name in aaa bbb ccc; do
+    cnt=$(readelf -wi 1 | grep -c "DW_AT_name.*:.*$name" || true)
+    [ $cnt -eq 1 ]
+done
+
+rm -f 1

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-12-10 17:20 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-01  0:00 [RFC 10/13][odr, testsuite] Add test-case odr-loc.sh Tom de Vries

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).