diff options
Diffstat (limited to 'asn1c/check-xxber.sh')
-rwxr-xr-x | asn1c/check-xxber.sh | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/asn1c/check-xxber.sh b/asn1c/check-xxber.sh new file mode 100755 index 00000000..ad363911 --- /dev/null +++ b/asn1c/check-xxber.sh @@ -0,0 +1,38 @@ +#!/bin/sh + +ORIG="./.check-xxber.orig.$$.tmp" +TEST="./.check-xxber.test.$$.tmp" + +# Test diff(1) capabilities +diff -a . . 2>/dev/null && diffArgs="-a" # Assume text files +diff -u . . 2>/dev/null && diffArgs="$diffArgs -u" # Unified diff output + +cat<<EOM > $ORIG +<I O="0" T="[UNIVERSAL 16]" TL="2" V="Indefinite" A="SEQUENCE"> +<P O="2" T="[UNIVERSAL 19]" TL="2" V="2" A="PrintableString">US</P> +<C O="6" T="[UNIVERSAL 16]" TL="2" V="6" A="SEQUENCE"> +<P O="8" T="[UNIVERSAL 2]" TL="2" V="4" A="INTEGER">1¦ G</P> +</C O="14" T="[UNIVERSAL 16]" A="SEQUENCE" L="8"> +EOM + +./enber < $ORIG - | ./unber -p -i 0 - > $TEST 2>&1 +diff $diffArgs $ORIG $TEST >/dev/null 2>&1 +diffExitCode=$? + +if [ $diffExitCode == "0" ]; then + echo "FAILED: $0: expected failure, got success" + exit 42; +fi + +# Append necessary terminator +echo '</I O="14" T="[UNIVERSAL 0]" TL="2" L="16">' >> $ORIG + +# Try trancoding again +./enber < $ORIG - | ./unber -p -i 0 - > $TEST 2>&1 + +diff $diffArgs $ORIG $TEST +diffExitCode=$? + +rm -f $ORIG $TEST + +exit $diffExitCode |