more debug


git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@1215 59561ff5-6e30-0410-9f3c-9617f08c8826
diff --git a/examples/sample.makefile.regen b/examples/sample.makefile.regen
index 57a0dae..daac595 100755
--- a/examples/sample.makefile.regen
+++ b/examples/sample.makefile.regen
@@ -59,61 +59,43 @@
 	echo 'check: ${TARGET}'
 	echo "	@if test -f sample-${ASN1PDU}-1.[db]er ; then \\"
 	echo "	for f in sample-${ASN1PDU}-*.[db]er; do \\"
-	echo '	echo "Recoding $$f into XER and back..."; \'
-	echo '	./${TARGET} -iber -oxer -b 1 $$f > ./.tmp.1.$$$$ || exit 2; \'
-	echo '	./${TARGET} -iber -oxer -b 17 $$f > ./.tmp.1.$$$$ || exit 2; \'
-	echo '	./${TARGET} -iber -oxer -b 33 $$f > ./.tmp.1.$$$$ || exit 2; \'
-	echo '	./${TARGET} -iber -oxer -b 980 $$f > ./.tmp.1.$$$$ || exit 2; \'
-	echo '	./${TARGET} -iber -oxer $$f > ./.tmp.1.$$$$ || exit 2; \'
-	echo '	./${TARGET} -ixer -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \'
+	echo '	for b in 1 17 33 980 8192; do \'
+	echo '	echo "Recoding $$f into XER and back ($$b)..."; \'
+	echo '	./${TARGET} -b $$b -iber -oxer $$f > ./.tmp.1.$$$$ || exit 2; \'
+	echo '	./${TARGET} -b $$b -ixer -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \'
 	echo '	diff ./.tmp.1.$$$$ ./.tmp.2.$$$$ || exit 2; \'
 	echo '	rm -f ./.tmp.[12].$$$$; \'
-	echo '	done; fi'
+	echo '	done; done; fi'
 	echo "	@if test -f sample-${ASN1PDU}-1.xer ; then \\"
 	echo "	for f in sample-${ASN1PDU}-*.xer; do \\"
-	echo '	echo "Recoding $$f into DER and back..."; \'
-	echo '	./${TARGET} -ixer -oder -b 1 $$f > ./.tmp.1.$$$$ || exit 2; \'
-	echo '	./${TARGET} -ixer -oder -b 17 $$f > ./.tmp.1.$$$$ || exit 2; \'
-	echo '	./${TARGET} -ixer -oder -b 33 $$f > ./.tmp.1.$$$$ || exit 2; \'
-	echo '	./${TARGET} -ixer -oder -b 980 $$f > ./.tmp.1.$$$$ || exit 2; \'
-	echo '	./${TARGET} -ixer -oder $$f > ./.tmp.1.$$$$ || exit 2; \'
-	echo '	./${TARGET} -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \'
+	echo '	for b in 1 17 33 980 8192; do \'
+	echo '	echo "Recoding $$f into DER and back ($$b)..."; \'
+	echo '	./${TARGET} -b $$b -ixer -oder $$f > ./.tmp.1.$$$$ || exit 2; \'
+	echo '	./${TARGET} -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \'
 	echo '	diff $$f ./.tmp.2.$$$$ || exit 2; \'
 	echo '	rm -f ./.tmp.[12].$$$$; \'
-	echo '	done; fi'
+	echo '	done; done; fi'
 	echo "	@if test -f sample-${ASN1PDU}-1.per ; then \\"
 	echo "	for f in sample-${ASN1PDU}-[1-9].per; do \\"
-	echo '	echo "Recoding $$f into DER into XER and back..."; \'
-	echo '	./${TARGET} -iper -oxer -b 1 $$f > ./.tmp.1.$$$$ || exit 2; \'
-	echo '	./${TARGET} -iper -oxer -b 17 $$f > ./.tmp.2.$$$$ || exit 2; \'
-	echo '	./${TARGET} -iper -oxer -b 33 $$f > ./.tmp.3.$$$$ || exit 2; \'
-	echo '	./${TARGET} -iper -oxer -b 980 $$f > ./.tmp.4.$$$$ || exit 2; \'
-	echo '	diff ./.tmp.1.$$$$ ./.tmp.2.$$$$ || exit 2; \'
-	echo '	diff ./.tmp.2.$$$$ ./.tmp.3.$$$$ || exit 2; \'
-	echo '	diff ./.tmp.3.$$$$ ./.tmp.4.$$$$ || exit 2; \'
-	echo '	./${TARGET} -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \'
-	echo '	./${TARGET} -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \'
-	echo '	./${TARGET} -ixer -oder ./.tmp.2.$$$$ > ./.tmp.3.$$$$ || exit 2; \'
+	echo '	for b in 1 17 33 980 8192; do \'
+	echo '	echo "Recoding $$f into DER into XER and back ($$b)..."; \'
+	echo '	./${TARGET} -b $$b -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \'
+	echo '	./${TARGET} -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \'
+	echo '	./${TARGET} -b $$b -ixer -oder ./.tmp.2.$$$$ > ./.tmp.3.$$$$ || exit 2; \'
 	echo '	diff ./.tmp.1.$$$$ ./.tmp.3.$$$$ || exit 2; \'
-	echo '	rm -f ./.tmp.[1234].$$$$; \'
-	echo '	done; fi'
+	echo '	rm -f ./.tmp.[123].$$$$; \'
+	echo '	done; done; fi'
 	echo "	@if test -f sample-${ASN1PDU}-1-padded.per ; then \\"
 	echo "	for f in sample-*-[1-9]-padded.per; do \\"
 	echo '	pdu=`echo $$f | sed -E -e "s/sample-([A-Za-z-]+)-[0-9].*/\1/"`; \'
-	echo '	echo "Recoding byte-padded $$f into DER into XER and back..."; \'
-	echo '	./${TARGET} -per-padded -p $$pdu -iper -oxer -b 1 $$f > ./.tmp.1.$$$$ || exit 2; \'
-	echo '	./${TARGET} -per-padded -p $$pdu -iper -oxer -b 17 $$f > ./.tmp.2.$$$$ || exit 2; \'
-	echo '	./${TARGET} -per-padded -p $$pdu -iper -oxer -b 33 $$f > ./.tmp.3.$$$$ || exit 2; \'
-	echo '	./${TARGET} -per-padded -p $$pdu -iper -oxer -b 980 $$f > ./.tmp.4.$$$$ || exit 2; \'
-	echo '	diff ./.tmp.1.$$$$ ./.tmp.2.$$$$ || exit 2; \'
-	echo '	diff ./.tmp.2.$$$$ ./.tmp.3.$$$$ || exit 2; \'
-	echo '	diff ./.tmp.3.$$$$ ./.tmp.4.$$$$ || exit 2; \'
-	echo '	./${TARGET} -per-padded -p $$pdu -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \'
-	echo '	./${TARGET} -p $$pdu -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \'
-	echo '	./${TARGET} -p $$pdu -ixer -oper ./.tmp.2.$$$$ > ./.tmp.1.$$$$ || exit 2; \'
+	echo '	for b in 1 17 33 980 8192; do \'
+	echo '	echo "Recoding byte-padded $$f into DER into XER and back ($$b)..."; \'
+	echo '	./${TARGET} -b $$b -per-padded -p $$pdu -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \'
+	echo '	./${TARGET} -b $$b -p $$pdu -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \'
+	echo '	./${TARGET} -b $$b -p $$pdu -ixer -oper ./.tmp.2.$$$$ > ./.tmp.1.$$$$ || exit 2; \'
 	echo '	diff $$f ./.tmp.1.$$$$ || exit 2; \'
-	echo '	rm -f ./.tmp.[1234].$$$$; \'
-	echo '	done; fi'
+	echo '	rm -f ./.tmp.[12].$$$$; \'
+	echo '	done; done; fi'
 	echo '	@echo ================'
 	echo '	@echo All tests passed'
 	echo '	@echo ================'
diff --git a/examples/sample.source.LDAP3/Makefile b/examples/sample.source.LDAP3/Makefile
index 86a7917..2e1ab89 100644
--- a/examples/sample.source.LDAP3/Makefile
+++ b/examples/sample.source.LDAP3/Makefile
@@ -202,61 +202,43 @@
 check: ${TARGET}
 	@if test -f sample-LDAPMessage-1.[db]er ; then \
 	for f in sample-LDAPMessage-*.[db]er; do \
-	echo "Recoding $$f into XER and back..."; \
-	./${TARGET} -iber -oxer -b 1 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer -b 17 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer -b 33 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer -b 980 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -ixer -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
+	for b in 1 17 33 980 8192; do \
+	echo "Recoding $$f into XER and back ($$b)..."; \
+	./${TARGET} -b $$b -iber -oxer $$f > ./.tmp.1.$$$$ || exit 2; \
+	./${TARGET} -b $$b -ixer -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
 	diff ./.tmp.1.$$$$ ./.tmp.2.$$$$ || exit 2; \
 	rm -f ./.tmp.[12].$$$$; \
-	done; fi
+	done; done; fi
 	@if test -f sample-LDAPMessage-1.xer ; then \
 	for f in sample-LDAPMessage-*.xer; do \
-	echo "Recoding $$f into DER and back..."; \
-	./${TARGET} -ixer -oder -b 1 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -ixer -oder -b 17 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -ixer -oder -b 33 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -ixer -oder -b 980 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -ixer -oder $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
+	for b in 1 17 33 980 8192; do \
+	echo "Recoding $$f into DER and back ($$b)..."; \
+	./${TARGET} -b $$b -ixer -oder $$f > ./.tmp.1.$$$$ || exit 2; \
+	./${TARGET} -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
 	diff $$f ./.tmp.2.$$$$ || exit 2; \
 	rm -f ./.tmp.[12].$$$$; \
-	done; fi
+	done; done; fi
 	@if test -f sample-LDAPMessage-1.per ; then \
 	for f in sample-LDAPMessage-[1-9].per; do \
-	echo "Recoding $$f into DER into XER and back..."; \
-	./${TARGET} -iper -oxer -b 1 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iper -oxer -b 17 $$f > ./.tmp.2.$$$$ || exit 2; \
-	./${TARGET} -iper -oxer -b 33 $$f > ./.tmp.3.$$$$ || exit 2; \
-	./${TARGET} -iper -oxer -b 980 $$f > ./.tmp.4.$$$$ || exit 2; \
-	diff ./.tmp.1.$$$$ ./.tmp.2.$$$$ || exit 2; \
-	diff ./.tmp.2.$$$$ ./.tmp.3.$$$$ || exit 2; \
-	diff ./.tmp.3.$$$$ ./.tmp.4.$$$$ || exit 2; \
-	./${TARGET} -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
-	./${TARGET} -ixer -oder ./.tmp.2.$$$$ > ./.tmp.3.$$$$ || exit 2; \
+	for b in 1 17 33 980 8192; do \
+	echo "Recoding $$f into DER into XER and back ($$b)..."; \
+	./${TARGET} -b $$b -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \
+	./${TARGET} -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
+	./${TARGET} -b $$b -ixer -oder ./.tmp.2.$$$$ > ./.tmp.3.$$$$ || exit 2; \
 	diff ./.tmp.1.$$$$ ./.tmp.3.$$$$ || exit 2; \
-	rm -f ./.tmp.[1234].$$$$; \
-	done; fi
+	rm -f ./.tmp.[123].$$$$; \
+	done; done; fi
 	@if test -f sample-LDAPMessage-1-padded.per ; then \
 	for f in sample-*-[1-9]-padded.per; do \
 	pdu=`echo $$f | sed -E -e "s/sample-([A-Za-z-]+)-[0-9].*/\1/"`; \
-	echo "Recoding byte-padded $$f into DER into XER and back..."; \
-	./${TARGET} -per-padded -p $$pdu -iper -oxer -b 1 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -per-padded -p $$pdu -iper -oxer -b 17 $$f > ./.tmp.2.$$$$ || exit 2; \
-	./${TARGET} -per-padded -p $$pdu -iper -oxer -b 33 $$f > ./.tmp.3.$$$$ || exit 2; \
-	./${TARGET} -per-padded -p $$pdu -iper -oxer -b 980 $$f > ./.tmp.4.$$$$ || exit 2; \
-	diff ./.tmp.1.$$$$ ./.tmp.2.$$$$ || exit 2; \
-	diff ./.tmp.2.$$$$ ./.tmp.3.$$$$ || exit 2; \
-	diff ./.tmp.3.$$$$ ./.tmp.4.$$$$ || exit 2; \
-	./${TARGET} -per-padded -p $$pdu -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -p $$pdu -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
-	./${TARGET} -p $$pdu -ixer -oper ./.tmp.2.$$$$ > ./.tmp.1.$$$$ || exit 2; \
+	for b in 1 17 33 980 8192; do \
+	echo "Recoding byte-padded $$f into DER into XER and back ($$b)..."; \
+	./${TARGET} -b $$b -per-padded -p $$pdu -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \
+	./${TARGET} -b $$b -p $$pdu -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
+	./${TARGET} -b $$b -p $$pdu -ixer -oper ./.tmp.2.$$$$ > ./.tmp.1.$$$$ || exit 2; \
 	diff $$f ./.tmp.1.$$$$ || exit 2; \
-	rm -f ./.tmp.[1234].$$$$; \
-	done; fi
+	rm -f ./.tmp.[12].$$$$; \
+	done; done; fi
 	@echo ================
 	@echo All tests passed
 	@echo ================
diff --git a/examples/sample.source.MEGACO/Makefile b/examples/sample.source.MEGACO/Makefile
index fdc878b..62df62a 100644
--- a/examples/sample.source.MEGACO/Makefile
+++ b/examples/sample.source.MEGACO/Makefile
@@ -309,7 +309,7 @@
 	../../asn1c/asn1c -S ../../skeletons -fcompound-names ../rfc3525-MEDIA-GATEWAY-CONTROL.asn1
 
 
-MegacoMessage.c: ../sample.makefile.regen
+MegacoMessage.c: ../sample.makefile.regen ../rfc3525-MEDIA-GATEWAY-CONTROL.asn1
 	make regen-makefile
 	@touch MegacoMessage.c
 	make
@@ -322,31 +322,45 @@
 	../sample.makefile.regen
 
 check: ${TARGET}
-	@if test -f ./sample-MegacoMessage-1.[db]er ; then \
-	for f in ./sample-MegacoMessage-*.[db]er; do \
-	echo "Recoding $$f into XER and back..."; \
-	./${TARGET} -iber -oxer $$f > ./.tmp.1.$$ || exit 2; \
-	./${TARGET} -ixer -oxer ./.tmp.1.$$ > ./.tmp.2.$$ || exit 2; \
-	diff ./.tmp.1.$$ ./.tmp.2.$$ || exit 2; \
-	rm -f ./.tmp.[12].$$; \
-	done; fi
-	@if test -f ./sample-MegacoMessage-1.xer ; then \
-	for f in ./sample-MegacoMessage-*.xer; do \
-	echo "Recoding $$f into DER and back..."; \
-	./${TARGET} -ixer -oder $$f > ./.tmp.1.$$ || exit 2; \
-	./${TARGET} -iber -oxer ./.tmp.1.$$ > ./.tmp.2.$$ || exit 2; \
-	diff $$f ./.tmp.2.$$ || exit 2; \
-	rm -f ./.tmp.[12].$$; \
-	done; fi
-	@if test -f ./sample-MegacoMessage-1.per ; then \
-	for f in ./sample-MegacoMessage-*.per; do \
-	echo "Recoding $$f into DER into XER and back..."; \
-	./${TARGET} -iper -oder $$f > ./.tmp.1.$$ || exit 2; \
-	./${TARGET} -ider -oxer ./.tmp.1.$$ > ./.tmp.2.$$ || exit 2; \
-	./${TARGET} -ixer -oper ./.tmp.2.$$ > ./.tmp.1.$$ || exit 2; \
-	diff $$f ./.tmp.1.$$ || exit 2; \
-	rm -f ./.tmp.[12].$$; \
-	done; fi
+	@if test -f sample-MegacoMessage-1.[db]er ; then \
+	for f in sample-MegacoMessage-*.[db]er; do \
+	for b in 1 17 33 980 8192; do \
+	echo "Recoding $$f into XER and back ($$b)..."; \
+	./${TARGET} -b $$b -iber -oxer $$f > ./.tmp.1.$$$$ || exit 2; \
+	./${TARGET} -b $$b -ixer -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
+	diff ./.tmp.1.$$$$ ./.tmp.2.$$$$ || exit 2; \
+	rm -f ./.tmp.[12].$$$$; \
+	done; done; fi
+	@if test -f sample-MegacoMessage-1.xer ; then \
+	for f in sample-MegacoMessage-*.xer; do \
+	for b in 1 17 33 980 8192; do \
+	echo "Recoding $$f into DER and back ($$b)..."; \
+	./${TARGET} -b $$b -ixer -oder $$f > ./.tmp.1.$$$$ || exit 2; \
+	./${TARGET} -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
+	diff $$f ./.tmp.2.$$$$ || exit 2; \
+	rm -f ./.tmp.[12].$$$$; \
+	done; done; fi
+	@if test -f sample-MegacoMessage-1.per ; then \
+	for f in sample-MegacoMessage-[1-9].per; do \
+	for b in 1 17 33 980 8192; do \
+	echo "Recoding $$f into DER into XER and back ($$b)..."; \
+	./${TARGET} -b $$b -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \
+	./${TARGET} -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
+	./${TARGET} -b $$b -ixer -oder ./.tmp.2.$$$$ > ./.tmp.3.$$$$ || exit 2; \
+	diff ./.tmp.1.$$$$ ./.tmp.3.$$$$ || exit 2; \
+	rm -f ./.tmp.[123].$$$$; \
+	done; done; fi
+	@if test -f sample-MegacoMessage-1-padded.per ; then \
+	for f in sample-*-[1-9]-padded.per; do \
+	pdu=`echo $$f | sed -E -e "s/sample-([A-Za-z-]+)-[0-9].*/\1/"`; \
+	for b in 1 17 33 980 8192; do \
+	echo "Recoding byte-padded $$f into DER into XER and back ($$b)..."; \
+	./${TARGET} -b $$b -per-padded -p $$pdu -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \
+	./${TARGET} -b $$b -p $$pdu -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
+	./${TARGET} -b $$b -p $$pdu -ixer -oper ./.tmp.2.$$$$ > ./.tmp.1.$$$$ || exit 2; \
+	diff $$f ./.tmp.1.$$$$ || exit 2; \
+	rm -f ./.tmp.[12].$$$$; \
+	done; done; fi
 	@echo ================
 	@echo All tests passed
 	@echo ================
diff --git a/examples/sample.source.MHEG5/Makefile b/examples/sample.source.MHEG5/Makefile
index 53490ef..7dfede2 100644
--- a/examples/sample.source.MHEG5/Makefile
+++ b/examples/sample.source.MHEG5/Makefile
@@ -490,62 +490,45 @@
 	../sample.makefile.regen
 
 check: ${TARGET}
-	@if test -f ./sample-InterchangedObject-1.[db]er ; then \
-	for f in ./sample-InterchangedObject-*.[db]er; do \
-	echo "Recoding $$f into XER and back..."; \
-	./${TARGET} -iber -oxer -b 1 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer -b 17 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer -b 33 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer -b 980 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -ixer -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
+	@if test -f sample-InterchangedObject-1.[db]er ; then \
+	for f in sample-InterchangedObject-*.[db]er; do \
+	for b in 1 17 33 980 8192; do \
+	echo "Recoding $$f into XER and back ($$b)..."; \
+	./${TARGET} -b $$b -iber -oxer $$f > ./.tmp.1.$$$$ || exit 2; \
+	./${TARGET} -b $$b -ixer -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
 	diff ./.tmp.1.$$$$ ./.tmp.2.$$$$ || exit 2; \
 	rm -f ./.tmp.[12].$$$$; \
-	done; fi
-	@if test -f ./sample-InterchangedObject-1.xer ; then \
-	for f in ./sample-InterchangedObject-*.xer; do \
-	echo "Recoding $$f into DER and back..."; \
-	./${TARGET} -ixer -oder -b 1 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -ixer -oder -b 17 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -ixer -oder -b 33 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -ixer -oder -b 980 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -ixer -oder $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
+	done; done; fi
+	@if test -f sample-InterchangedObject-1.xer ; then \
+	for f in sample-InterchangedObject-*.xer; do \
+	for b in 1 17 33 980 8192; do \
+	echo "Recoding $$f into DER and back ($$b)..."; \
+	./${TARGET} -b $$b -ixer -oder $$f > ./.tmp.1.$$$$ || exit 2; \
+	./${TARGET} -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
 	diff $$f ./.tmp.2.$$$$ || exit 2; \
 	rm -f ./.tmp.[12].$$$$; \
-	done; fi
-	@if test -f ./sample-InterchangedObject-1.per ; then \
-	for f in ./sample-InterchangedObject-[1-9].per; do \
-	echo "Recoding $$f into DER into XER and back..."; \
-	./${TARGET} -iper -oxer -b 1 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iper -oxer -b 17 $$f > ./.tmp.2.$$$$ || exit 2; \
-	./${TARGET} -iper -oxer -b 33 $$f > ./.tmp.3.$$$$ || exit 2; \
-	./${TARGET} -iper -oxer -b 980 $$f > ./.tmp.4.$$$$ || exit 2; \
-	diff ./.tmp.1.$$$$ ./.tmp.2.$$$$ || exit 2; \
-	diff ./.tmp.2.$$$$ ./.tmp.3.$$$$ || exit 2; \
-	diff ./.tmp.3.$$$$ ./.tmp.4.$$$$ || exit 2; \
-	./${TARGET} -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
-	./${TARGET} -ixer -oder ./.tmp.2.$$$$ > ./.tmp.3.$$$$ || exit 2; \
+	done; done; fi
+	@if test -f sample-InterchangedObject-1.per ; then \
+	for f in sample-InterchangedObject-[1-9].per; do \
+	for b in 1 17 33 980 8192; do \
+	echo "Recoding $$f into DER into XER and back ($$b)..."; \
+	./${TARGET} -b $$b -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \
+	./${TARGET} -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
+	./${TARGET} -b $$b -ixer -oder ./.tmp.2.$$$$ > ./.tmp.3.$$$$ || exit 2; \
 	diff ./.tmp.1.$$$$ ./.tmp.3.$$$$ || exit 2; \
-	rm -f ./.tmp.[1234].$$$$; \
-	done; fi
-	@if test -f ./sample-InterchangedObject-1-padded.per ; then \
-	for f in ./sample-InterchangedObject-[1-9]-padded.per; do \
-	echo "Recoding byte-padded $$f into DER into XER and back..."; \
-	./${TARGET} -per-padded -iper -oxer -b 1 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -per-padded -iper -oxer -b 17 $$f > ./.tmp.2.$$$$ || exit 2; \
-	./${TARGET} -per-padded -iper -oxer -b 33 $$f > ./.tmp.3.$$$$ || exit 2; \
-	./${TARGET} -per-padded -iper -oxer -b 980 $$f > ./.tmp.4.$$$$ || exit 2; \
-	diff ./.tmp.1.$$$$ ./.tmp.2.$$$$ || exit 2; \
-	diff ./.tmp.2.$$$$ ./.tmp.3.$$$$ || exit 2; \
-	diff ./.tmp.3.$$$$ ./.tmp.4.$$$$ || exit 2; \
-	./${TARGET} -per-padded -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
-	./${TARGET} -ixer -oper ./.tmp.2.$$$$ > ./.tmp.1.$$$$ || exit 2; \
+	rm -f ./.tmp.[123].$$$$; \
+	done; done; fi
+	@if test -f sample-InterchangedObject-1-padded.per ; then \
+	for f in sample-*-[1-9]-padded.per; do \
+	pdu=`echo $$f | sed -E -e "s/sample-([A-Za-z-]+)-[0-9].*/\1/"`; \
+	for b in 1 17 33 980 8192; do \
+	echo "Recoding byte-padded $$f into DER into XER and back ($$b)..."; \
+	./${TARGET} -b $$b -per-padded -p $$pdu -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \
+	./${TARGET} -b $$b -p $$pdu -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
+	./${TARGET} -b $$b -p $$pdu -ixer -oper ./.tmp.2.$$$$ > ./.tmp.1.$$$$ || exit 2; \
 	diff $$f ./.tmp.1.$$$$ || exit 2; \
-	rm -f ./.tmp.[1234].$$$$; \
-	done; fi
+	rm -f ./.tmp.[12].$$$$; \
+	done; done; fi
 	@echo ================
 	@echo All tests passed
 	@echo ================
diff --git a/examples/sample.source.PKIX1/Makefile b/examples/sample.source.PKIX1/Makefile
index b0fde7f..6d7557b 100644
--- a/examples/sample.source.PKIX1/Makefile
+++ b/examples/sample.source.PKIX1/Makefile
@@ -382,62 +382,45 @@
 	../sample.makefile.regen
 
 check: ${TARGET}
-	@if test -f ./sample-Certificate-1.[db]er ; then \
-	for f in ./sample-Certificate-*.[db]er; do \
-	echo "Recoding $$f into XER and back..."; \
-	./${TARGET} -iber -oxer -b 1 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer -b 17 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer -b 33 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer -b 980 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -ixer -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
+	@if test -f sample-Certificate-1.[db]er ; then \
+	for f in sample-Certificate-*.[db]er; do \
+	for b in 1 17 33 980 8192; do \
+	echo "Recoding $$f into XER and back ($$b)..."; \
+	./${TARGET} -b $$b -iber -oxer $$f > ./.tmp.1.$$$$ || exit 2; \
+	./${TARGET} -b $$b -ixer -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
 	diff ./.tmp.1.$$$$ ./.tmp.2.$$$$ || exit 2; \
 	rm -f ./.tmp.[12].$$$$; \
-	done; fi
-	@if test -f ./sample-Certificate-1.xer ; then \
-	for f in ./sample-Certificate-*.xer; do \
-	echo "Recoding $$f into DER and back..."; \
-	./${TARGET} -ixer -oder -b 1 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -ixer -oder -b 17 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -ixer -oder -b 33 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -ixer -oder -b 980 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -ixer -oder $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
+	done; done; fi
+	@if test -f sample-Certificate-1.xer ; then \
+	for f in sample-Certificate-*.xer; do \
+	for b in 1 17 33 980 8192; do \
+	echo "Recoding $$f into DER and back ($$b)..."; \
+	./${TARGET} -b $$b -ixer -oder $$f > ./.tmp.1.$$$$ || exit 2; \
+	./${TARGET} -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
 	diff $$f ./.tmp.2.$$$$ || exit 2; \
 	rm -f ./.tmp.[12].$$$$; \
-	done; fi
-	@if test -f ./sample-Certificate-1.per ; then \
-	for f in ./sample-Certificate-[1-9].per; do \
-	echo "Recoding $$f into DER into XER and back..."; \
-	./${TARGET} -iper -oxer -b 1 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iper -oxer -b 17 $$f > ./.tmp.2.$$$$ || exit 2; \
-	./${TARGET} -iper -oxer -b 33 $$f > ./.tmp.3.$$$$ || exit 2; \
-	./${TARGET} -iper -oxer -b 980 $$f > ./.tmp.4.$$$$ || exit 2; \
-	diff ./.tmp.1.$$$$ ./.tmp.2.$$$$ || exit 2; \
-	diff ./.tmp.2.$$$$ ./.tmp.3.$$$$ || exit 2; \
-	diff ./.tmp.3.$$$$ ./.tmp.4.$$$$ || exit 2; \
-	./${TARGET} -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
-	./${TARGET} -ixer -oder ./.tmp.2.$$$$ > ./.tmp.3.$$$$ || exit 2; \
+	done; done; fi
+	@if test -f sample-Certificate-1.per ; then \
+	for f in sample-Certificate-[1-9].per; do \
+	for b in 1 17 33 980 8192; do \
+	echo "Recoding $$f into DER into XER and back ($$b)..."; \
+	./${TARGET} -b $$b -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \
+	./${TARGET} -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
+	./${TARGET} -b $$b -ixer -oder ./.tmp.2.$$$$ > ./.tmp.3.$$$$ || exit 2; \
 	diff ./.tmp.1.$$$$ ./.tmp.3.$$$$ || exit 2; \
-	rm -f ./.tmp.[1234].$$$$; \
-	done; fi
-	@if test -f ./sample-Certificate-1-padded.per ; then \
-	for f in ./sample-Certificate-[1-9]-padded.per; do \
-	echo "Recoding byte-padded $$f into DER into XER and back..."; \
-	./${TARGET} -per-padded -iper -oxer -b 1 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -per-padded -iper -oxer -b 17 $$f > ./.tmp.2.$$$$ || exit 2; \
-	./${TARGET} -per-padded -iper -oxer -b 33 $$f > ./.tmp.3.$$$$ || exit 2; \
-	./${TARGET} -per-padded -iper -oxer -b 980 $$f > ./.tmp.4.$$$$ || exit 2; \
-	diff ./.tmp.1.$$$$ ./.tmp.2.$$$$ || exit 2; \
-	diff ./.tmp.2.$$$$ ./.tmp.3.$$$$ || exit 2; \
-	diff ./.tmp.3.$$$$ ./.tmp.4.$$$$ || exit 2; \
-	./${TARGET} -per-padded -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
-	./${TARGET} -ixer -oper ./.tmp.2.$$$$ > ./.tmp.1.$$$$ || exit 2; \
+	rm -f ./.tmp.[123].$$$$; \
+	done; done; fi
+	@if test -f sample-Certificate-1-padded.per ; then \
+	for f in sample-*-[1-9]-padded.per; do \
+	pdu=`echo $$f | sed -E -e "s/sample-([A-Za-z-]+)-[0-9].*/\1/"`; \
+	for b in 1 17 33 980 8192; do \
+	echo "Recoding byte-padded $$f into DER into XER and back ($$b)..."; \
+	./${TARGET} -b $$b -per-padded -p $$pdu -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \
+	./${TARGET} -b $$b -p $$pdu -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
+	./${TARGET} -b $$b -p $$pdu -ixer -oper ./.tmp.2.$$$$ > ./.tmp.1.$$$$ || exit 2; \
 	diff $$f ./.tmp.1.$$$$ || exit 2; \
-	rm -f ./.tmp.[1234].$$$$; \
-	done; fi
+	rm -f ./.tmp.[12].$$$$; \
+	done; done; fi
 	@echo ================
 	@echo All tests passed
 	@echo ================
diff --git a/examples/sample.source.RRC/Makefile b/examples/sample.source.RRC/Makefile
index 313abb1..1ff6d82 100644
--- a/examples/sample.source.RRC/Makefile
+++ b/examples/sample.source.RRC/Makefile
@@ -4779,68 +4779,43 @@
 check: ${TARGET}
 	@if test -f sample-DL-DCCH-Message-1.[db]er ; then \
 	for f in sample-DL-DCCH-Message-*.[db]er; do \
-	echo "Recoding $$f into XER and back..."; \
-	./${TARGET} -iber -oxer -b 1 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer -b 17 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer -b 33 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer -b 980 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -ixer -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
+	for b in 1 17 33 980 8192; do \
+	echo "Recoding $$f into XER and back ($$b)..."; \
+	./${TARGET} -b $$b -iber -oxer $$f > ./.tmp.1.$$$$ || exit 2; \
+	./${TARGET} -b $$b -ixer -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
 	diff ./.tmp.1.$$$$ ./.tmp.2.$$$$ || exit 2; \
 	rm -f ./.tmp.[12].$$$$; \
-	done; fi
+	done; done; fi
 	@if test -f sample-DL-DCCH-Message-1.xer ; then \
 	for f in sample-DL-DCCH-Message-*.xer; do \
-	echo "Recoding $$f into DER and back..."; \
-	./${TARGET} -ixer -oder -b 1 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -ixer -oder -b 17 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -ixer -oder -b 33 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -ixer -oder -b 980 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -ixer -oder $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
+	for b in 1 17 33 980 8192; do \
+	echo "Recoding $$f into DER and back ($$b)..."; \
+	./${TARGET} -b $$b -ixer -oder $$f > ./.tmp.1.$$$$ || exit 2; \
+	./${TARGET} -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
 	diff $$f ./.tmp.2.$$$$ || exit 2; \
 	rm -f ./.tmp.[12].$$$$; \
-	done; fi
+	done; done; fi
 	@if test -f sample-DL-DCCH-Message-1.per ; then \
 	for f in sample-DL-DCCH-Message-[1-9].per; do \
-	echo "Recoding $$f into DER into XER and back..."; \
-	./${TARGET} -iper -oxer -b 1 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iper -oxer -b 17 $$f > ./.tmp.2.$$$$ || exit 2; \
-	./${TARGET} -iper -oxer -b 33 $$f > ./.tmp.3.$$$$ || exit 2; \
-	./${TARGET} -iper -oxer -b 980 $$f > ./.tmp.4.$$$$ || exit 2; \
-	diff ./.tmp.1.$$$$ ./.tmp.2.$$$$ || exit 2; \
-	diff ./.tmp.2.$$$$ ./.tmp.3.$$$$ || exit 2; \
-	diff ./.tmp.3.$$$$ ./.tmp.4.$$$$ || exit 2; \
-	./${TARGET} -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
-	./${TARGET} -ixer -oder ./.tmp.2.$$$$ > ./.tmp.3.$$$$ || exit 2; \
+	for b in 1 17 33 980 8192; do \
+	echo "Recoding $$f into DER into XER and back ($$b)..."; \
+	./${TARGET} -b $$b -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \
+	./${TARGET} -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
+	./${TARGET} -b $$b -ixer -oder ./.tmp.2.$$$$ > ./.tmp.3.$$$$ || exit 2; \
 	diff ./.tmp.1.$$$$ ./.tmp.3.$$$$ || exit 2; \
-	rm -f ./.tmp.[1234].$$$$; \
-	done; fi
+	rm -f ./.tmp.[123].$$$$; \
+	done; done; fi
 	@if test -f sample-DL-DCCH-Message-1-padded.per ; then \
 	for f in sample-*-[1-9]-padded.per; do \
 	pdu=`echo $$f | sed -E -e "s/sample-([A-Za-z-]+)-[0-9].*/\1/"`; \
-	echo "Recoding byte-padded $$f into DER into XER and back..."; \
-	echo "./${TARGET} -per-padded -p $$pdu -iper -oxer -b 1 $$f > ./.tmp.1.$$$$"; \
-	./${TARGET} -per-padded -p $$pdu -iper -oxer -b 1 $$f > ./.tmp.1.$$$$ || exit 2; \
-	echo "./${TARGET} -per-padded -p $$pdu -iper -oxer -b 17 $$f > ./.tmp.2.$$$$"; \
-	./${TARGET} -per-padded -p $$pdu -iper -oxer -b 17 $$f > ./.tmp.2.$$$$ || exit 2; \
-	echo "./${TARGET} -per-padded -p $$pdu -iper -oxer -b 33 $$f > ./.tmp.3.$$$$"; \
-	./${TARGET} -per-padded -p $$pdu -iper -oxer -b 33 $$f > ./.tmp.3.$$$$ || exit 2; \
-	echo "./${TARGET} -per-padded -p $$pdu -iper -oxer -b 980 $$f > ./.tmp.4.$$$$"; \
-	./${TARGET} -per-padded -p $$pdu -iper -oxer -b 980 $$f > ./.tmp.4.$$$$ || exit 2; \
-	diff ./.tmp.1.$$$$ ./.tmp.2.$$$$ || exit 2; \
-	diff ./.tmp.2.$$$$ ./.tmp.3.$$$$ || exit 2; \
-	diff ./.tmp.3.$$$$ ./.tmp.4.$$$$ || exit 2; \
-	echo "./${TARGET} -per-padded -p $$pdu -iper -oder $$f > ./.tmp.1.$$$$"; \
-	./${TARGET} -per-padded -p $$pdu -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \
-	echo "./${TARGET} -p $$pdu -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$"; \
-	./${TARGET} -p $$pdu -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
-	echo "./${TARGET} -p $$pdu -ixer -oper ./.tmp.2.$$$$ > ./.tmp.1.$$$$"; \
-	./${TARGET} -p $$pdu -ixer -oper ./.tmp.2.$$$$ > ./.tmp.1.$$$$ || exit 2; \
+	for b in 1 17 33 980 8192; do \
+	echo "Recoding byte-padded $$f into DER into XER and back ($$b)..."; \
+	./${TARGET} -b $$b -per-padded -p $$pdu -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \
+	./${TARGET} -b $$b -p $$pdu -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
+	./${TARGET} -b $$b -p $$pdu -ixer -oper ./.tmp.2.$$$$ > ./.tmp.1.$$$$ || exit 2; \
 	diff $$f ./.tmp.1.$$$$ || exit 2; \
-	rm -f ./.tmp.[1234].$$$$; \
-	done; fi
+	rm -f ./.tmp.[12].$$$$; \
+	done; done; fi
 	@echo ================
 	@echo All tests passed
 	@echo ================
diff --git a/examples/sample.source.TAP3/Makefile b/examples/sample.source.TAP3/Makefile
index e382616..5b1bb8f 100644
--- a/examples/sample.source.TAP3/Makefile
+++ b/examples/sample.source.TAP3/Makefile
@@ -716,62 +716,45 @@
 	../sample.makefile.regen
 
 check: ${TARGET}
-	@if test -f ./sample-DataInterChange-1.[db]er ; then \
-	for f in ./sample-DataInterChange-*.[db]er; do \
-	echo "Recoding $$f into XER and back..."; \
-	./${TARGET} -iber -oxer -b 1 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer -b 17 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer -b 33 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer -b 980 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -ixer -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
+	@if test -f sample-DataInterChange-1.[db]er ; then \
+	for f in sample-DataInterChange-*.[db]er; do \
+	for b in 1 17 33 980 8192; do \
+	echo "Recoding $$f into XER and back ($$b)..."; \
+	./${TARGET} -b $$b -iber -oxer $$f > ./.tmp.1.$$$$ || exit 2; \
+	./${TARGET} -b $$b -ixer -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
 	diff ./.tmp.1.$$$$ ./.tmp.2.$$$$ || exit 2; \
 	rm -f ./.tmp.[12].$$$$; \
-	done; fi
-	@if test -f ./sample-DataInterChange-1.xer ; then \
-	for f in ./sample-DataInterChange-*.xer; do \
-	echo "Recoding $$f into DER and back..."; \
-	./${TARGET} -ixer -oder -b 1 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -ixer -oder -b 17 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -ixer -oder -b 33 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -ixer -oder -b 980 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -ixer -oder $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
+	done; done; fi
+	@if test -f sample-DataInterChange-1.xer ; then \
+	for f in sample-DataInterChange-*.xer; do \
+	for b in 1 17 33 980 8192; do \
+	echo "Recoding $$f into DER and back ($$b)..."; \
+	./${TARGET} -b $$b -ixer -oder $$f > ./.tmp.1.$$$$ || exit 2; \
+	./${TARGET} -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
 	diff $$f ./.tmp.2.$$$$ || exit 2; \
 	rm -f ./.tmp.[12].$$$$; \
-	done; fi
-	@if test -f ./sample-DataInterChange-1.per ; then \
-	for f in ./sample-DataInterChange-[1-9].per; do \
-	echo "Recoding $$f into DER into XER and back..."; \
-	./${TARGET} -iper -oxer -b 1 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iper -oxer -b 17 $$f > ./.tmp.2.$$$$ || exit 2; \
-	./${TARGET} -iper -oxer -b 33 $$f > ./.tmp.3.$$$$ || exit 2; \
-	./${TARGET} -iper -oxer -b 980 $$f > ./.tmp.4.$$$$ || exit 2; \
-	diff ./.tmp.1.$$$$ ./.tmp.2.$$$$ || exit 2; \
-	diff ./.tmp.2.$$$$ ./.tmp.3.$$$$ || exit 2; \
-	diff ./.tmp.3.$$$$ ./.tmp.4.$$$$ || exit 2; \
-	./${TARGET} -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
-	./${TARGET} -ixer -oder ./.tmp.2.$$$$ > ./.tmp.3.$$$$ || exit 2; \
+	done; done; fi
+	@if test -f sample-DataInterChange-1.per ; then \
+	for f in sample-DataInterChange-[1-9].per; do \
+	for b in 1 17 33 980 8192; do \
+	echo "Recoding $$f into DER into XER and back ($$b)..."; \
+	./${TARGET} -b $$b -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \
+	./${TARGET} -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
+	./${TARGET} -b $$b -ixer -oder ./.tmp.2.$$$$ > ./.tmp.3.$$$$ || exit 2; \
 	diff ./.tmp.1.$$$$ ./.tmp.3.$$$$ || exit 2; \
-	rm -f ./.tmp.[1234].$$$$; \
-	done; fi
-	@if test -f ./sample-DataInterChange-1-padded.per ; then \
-	for f in ./sample-DataInterChange-[1-9]-padded.per; do \
-	echo "Recoding byte-padded $$f into DER into XER and back..."; \
-	./${TARGET} -per-padded -iper -oxer -b 1 $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -per-padded -iper -oxer -b 17 $$f > ./.tmp.2.$$$$ || exit 2; \
-	./${TARGET} -per-padded -iper -oxer -b 33 $$f > ./.tmp.3.$$$$ || exit 2; \
-	./${TARGET} -per-padded -iper -oxer -b 980 $$f > ./.tmp.4.$$$$ || exit 2; \
-	diff ./.tmp.1.$$$$ ./.tmp.2.$$$$ || exit 2; \
-	diff ./.tmp.2.$$$$ ./.tmp.3.$$$$ || exit 2; \
-	diff ./.tmp.3.$$$$ ./.tmp.4.$$$$ || exit 2; \
-	./${TARGET} -per-padded -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \
-	./${TARGET} -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
-	./${TARGET} -ixer -oper ./.tmp.2.$$$$ > ./.tmp.1.$$$$ || exit 2; \
+	rm -f ./.tmp.[123].$$$$; \
+	done; done; fi
+	@if test -f sample-DataInterChange-1-padded.per ; then \
+	for f in sample-*-[1-9]-padded.per; do \
+	pdu=`echo $$f | sed -E -e "s/sample-([A-Za-z-]+)-[0-9].*/\1/"`; \
+	for b in 1 17 33 980 8192; do \
+	echo "Recoding byte-padded $$f into DER into XER and back ($$b)..."; \
+	./${TARGET} -b $$b -per-padded -p $$pdu -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \
+	./${TARGET} -b $$b -p $$pdu -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 2; \
+	./${TARGET} -b $$b -p $$pdu -ixer -oper ./.tmp.2.$$$$ > ./.tmp.1.$$$$ || exit 2; \
 	diff $$f ./.tmp.1.$$$$ || exit 2; \
-	rm -f ./.tmp.[1234].$$$$; \
-	done; fi
+	rm -f ./.tmp.[12].$$$$; \
+	done; done; fi
 	@echo ================
 	@echo All tests passed
 	@echo ================