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