tests: ensure that soname is not accidentally bumped

Based on patch by Andreas Metzler.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
diff --git a/tests/Makefile.am b/tests/Makefile.am
index be10bbb..4079c8b 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -22,6 +22,8 @@
 AM_LDFLAGS = -no-install
 LDADD = ../lib/libtasn1.la ../gl/libgnu.la
 
+DISTCLEANFILES =
+
 EXTRA_DIST = Test_parser.asn Test_tree.asn Test_tree_asn1_tab.c	mscat.asn \
 	Test_encoding.asn pkix.asn TestIndef.p12 choice.asn coding-decoding2.asn \
 	TestIndef2.p12 TestIndef3.der TestCertOctetOverflow.der \
@@ -52,7 +54,7 @@
 # For crlf.
 EXTRA_DIST += crlf.cer crl.der ocsp.der
 dist_check_SCRIPTS = crlf benchmark threadsafety decoding decoding-invalid-x509 \
-	decoding-invalid-pkcs7 coding
+	decoding-invalid-pkcs7 coding soname
 
 MOSTLYCLEANFILES = Test_parser_ERROR.asn
 
@@ -67,7 +69,7 @@
 	Test_strings Test_choice Test_encdec copynode coding-decoding2 \
 	strict-der Test_choice_ocsp decoding decoding-invalid-x509 \
 	ocsp-basic-response octet-string coding-long-oid object-id-decoding \
-	spc_pe_image_data decoding-invalid-pkcs7 coding
+	spc_pe_image_data decoding-invalid-pkcs7 coding soname
 
 TESTS_ENVIRONMENT = \
 	ASN1PARSER=$(srcdir)/Test_parser.asn \
@@ -89,4 +91,8 @@
 	THREADSAFETY_FILES=`find $(top_srcdir)/lib -name \*.c` \
 	EXEEXT=$(EXEEXT) \
 	LSAN_OPTIONS=suppressions=libtasn1.supp \
-	$(VALGRIND)
+	build_triplet="$(build_triplet)" \
+	host_triplet="$(host_triplet)" \
+	builddir="$(builddir)"					\
+	top_builddir="$(top_builddir)"				\
+	srcdir="$(srcdir)"
diff --git a/tests/soname b/tests/soname
new file mode 100755
index 0000000..ccc75f6
--- /dev/null
+++ b/tests/soname
@@ -0,0 +1,24 @@
+#!/bin/sh
+set -e
+
+srcdir=${srcdir:-.}
+top_builddir=${top_builddir:-.}
+build_triplet=${build_triplet:-.}
+host_triplet=${host_triplet:-.}
+
+
+if [ "${build_triplet}" != "${host_triplet}" ]; then
+	echo "cross-compiling, not running soname check." 2>&1
+	exit 77
+fi
+if ! echo "${build_triplet}" | grep linux > /dev/null ; then
+	exit 77
+fi
+if ! [ -x "$(command -v objdump)" ]; then
+	echo "objdump not available" 1>&2
+	exit 77
+fi
+
+newsoname=$(objdump -p ${top_builddir}/lib/.libs/libtasn1.so | sed -n '/^ *SONAME /s/^ *SONAME *//p')
+
+[ "${newsoname}" = "libtasn1.so.6" ]