add asn1c compile smoke test
diff --git a/tests/tests-asn1c-smoke/check-asn1c-smoke.sh b/tests/tests-asn1c-smoke/check-asn1c-smoke.sh
new file mode 100755
index 0000000..d909af2
--- /dev/null
+++ b/tests/tests-asn1c-smoke/check-asn1c-smoke.sh
@@ -0,0 +1,74 @@
+#!/usr/bin/env bash
+
+set -x
+set -e
+set -o pipefail
+
+top_builddir=${top_builddir:-../..}
+top_srcdir=${top_srcdir:-../..}
+
+cleanup() {
+ rm -rf *.[cho] Makefile.am.* *.txt *.asn
+ rm -f converter-example
+}
+
+print_state() {
+ local err=$?
+ set +x
+ set +e
+ trap "" EXIT ERR
+ echo "Error $err while processing:"
+ cat test.asn
+ cat status.txt
+ echo "FAILED"
+ exit $err
+}
+
+verify() {
+ local type="$1"
+ local flags="$2"
+
+ cleanup
+
+ asncmd="${top_builddir}/asn1c/asn1c -flink-skeletons -S ${top_srcdir}/skeletons $flags test.asn"
+
+ {
+ echo "$asncmd"
+ echo "${MAKE:-make} -f Makefile.am.example"
+ } > status.txt
+
+ echo "Module DEFINITIONS::=BEGIN T::=$type END" > test.asn
+ $asncmd
+ CFLAGS=-O0 ${MAKE:-make} -f Makefile.am.example | tail -10
+}
+
+verify_type_with_variants() {
+ local type="$1"
+ for flags in "-no-gen-PER" "-no-gen-OER" "-no-gen-PER -no-gen-OER" ""; do
+ for native in "" "-fwide-types"; do
+ verify "$type" "$flags $native"
+ done
+ done
+}
+
+verify_compile_and_link_variants() {
+ for type in INTEGER "ENUMERATED{foo}" NULL BOOLEAN "BIT STRING" \
+ "OBJECT IDENTIFIER" "RELATIVE-OID" "SEQUENCE{f INTEGER}" \
+ "CHOICE{f INTEGER}" "OCTET STRING" IA5String UTF8String \
+ REAL "SET OF INTEGER" "SEQUENCE OF INTEGER"; do
+ verify_type_with_variants "$type"
+
+ done
+}
+
+trap print_state EXIT ERR
+if [ "x$*" = "x" ]; then
+ verify_compile_and_link_variants
+else
+ for type in "$@"; do
+ verify_type_with_variants "$type"
+ done
+fi
+trap '' EXIT ERR
+
+cleanup