blob: f10aad4226d166b87d2bbfe000801c783989482e [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
7ec=0
8
9if [ "$1" != "regenerate" ]; then
10 set -e
11fi
12
13PROCESSING=""
14print_status() {
15 echo "Error while processing $PROCESSING"
16}
17
18trap print_status EXIT
19
20top_srcdir="${top_srcdir:-../..}"
21top_builddir="${top_builddir:-../..}"
22
23for ref in ${top_srcdir}/tests/tests-asn1c-compiler/*.asn1.-*; do
24 # Figure out the initial source file used to generate this output.
25 src=$(echo "$ref" | sed -e 's/\.-[-a-zA-Z0-9=]*$//')
26 # Figure out compiler flags used to create the file.
27 flags=$(echo "$ref" | sed -e 's/.*\.-//')
28 echo "Checking $src against $ref"
29 template=.tmp.check-parsing.$$
30 oldversion=${template}.old
31 newversion=${template}.new
32 PROCESSING="$ref (from $src)"
33 LANG=C sed -e 's/^found in .*/found in .../' < "$ref" > "$oldversion"
34 (${top_builddir}/asn1c/asn1c -S ${top_srcdir}/skeletons "-$flags" "$src" | LANG=C sed -e 's/^found in .*/found in .../' > "$newversion") || ec=$?
35 if [ $? = 0 ]; then
36 diff $diffArgs "$oldversion" "$newversion" || ec=$?
37 fi
38 rm -f $oldversion $newversion
39 if [ "$1" = "regenerate" ]; then
Lev Walkin83d8b2f2017-08-10 17:17:01 -070040 ${top_builddir}/asn1c/asn1c -S ${top_srcdir}/skeletons "-$flags" "$src" > "$ref"
Lev Walkin700df492017-08-10 14:59:15 -070041 fi
42done
43
44if [ $ec = 0 ]; then
45 trap '' EXIT
46fi
47
48exit $ec