blob: 9464adb5f853d7506b98ec509f40e9c689031dfe [file] [log] [blame]
Lev Walkin700df492017-08-10 14:59:15 -07001#!/bin/sh
2
3# Test diff(1) capabilities
4diff -a . . 2>/dev/null && diffArgs="-a" # Assume text files
5diff -u . . 2>/dev/null && diffArgs="$diffArgs -u" # Unified diff output
6
Lev Walkin8e1d7592019-01-21 16:32:34 -08007finalExitCode=0
Lev Walkin700df492017-08-10 14:59:15 -07008
9if [ "$1" != "regenerate" ]; then
10 set -e
11fi
12
Lev Walkin8e1d7592019-01-21 16:32:34 -080013LAST_FAILED=""
Lev Walkin700df492017-08-10 14:59:15 -070014print_status() {
Lev Walkin8e1d7592019-01-21 16:32:34 -080015 if [ -n "${LAST_FAILED}" ]; then
16 echo "Error while processing $LAST_FAILED"
17 fi
Lev Walkin700df492017-08-10 14:59:15 -070018}
19
20trap print_status EXIT
21
22top_srcdir="${top_srcdir:-../..}"
23top_builddir="${top_builddir:-../..}"
24
25for ref in ${top_srcdir}/tests/tests-asn1c-compiler/*.asn1.-*; do
26 # Figure out the initial source file used to generate this output.
27 src=$(echo "$ref" | sed -e 's/\.-[-a-zA-Z0-9=]*$//')
28 # Figure out compiler flags used to create the file.
29 flags=$(echo "$ref" | sed -e 's/.*\.-//')
30 echo "Checking $src against $ref"
31 template=.tmp.check-parsing.$$
32 oldversion=${template}.old
33 newversion=${template}.new
Lev Walkin700df492017-08-10 14:59:15 -070034 LANG=C sed -e 's/^found in .*/found in .../' < "$ref" > "$oldversion"
Lev Walkin8e1d7592019-01-21 16:32:34 -080035 ec=0
Johannes Lode9925dbb2020-05-22 01:29:10 +020036 (${top_builddir}/asn1c/asn1c -S ${top_srcdir}/skeletons -no-gen-OER -no-gen-PER "-$flags" "$src" 2>&1 | LANG=C sed -e 's/^found in .*/found in .../' > "$newversion") || ec=$?
Lev Walkin700df492017-08-10 14:59:15 -070037 if [ $? = 0 ]; then
38 diff $diffArgs "$oldversion" "$newversion" || ec=$?
39 fi
Lev Walkin8e1d7592019-01-21 16:32:34 -080040 if [ $ec != 0 ]; then
41 LAST_FAILED="$ref (from $src)"
42 finalExitCode=$ec
43 fi
Lev Walkin700df492017-08-10 14:59:15 -070044 rm -f $oldversion $newversion
45 if [ "$1" = "regenerate" ]; then
Johannes Lode9925dbb2020-05-22 01:29:10 +020046 ${top_builddir}/asn1c/asn1c -S ${top_srcdir}/skeletons -no-gen-OER -no-gen-PER "-$flags" "$src" > "$ref" 2>&1
Lev Walkin700df492017-08-10 14:59:15 -070047 fi
48done
49
Lev Walkin8e1d7592019-01-21 16:32:34 -080050exit $finalExitCode