File: smidump-python.test.in

package info (click to toggle)
libsmi 0.4.3-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 22,180 kB
  • ctags: 8,219
  • sloc: ansic: 41,578; java: 13,722; yacc: 9,003; sh: 8,191; lex: 1,477; makefile: 442
file content (97 lines) | stat: -rw-r--r-- 2,807 bytes parent folder | download | duplicates (195)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#!/bin/sh
#
# smidump-FORMAT.test --
#
#       smidump test for various output formats and conversions.
#
# FORMAT=xxx : 
#   Check `smidump -f xxx' output for all TESTMIBS read from the libsmi MIB
#   repository against nominal dumps/xxx/ files.
#
# FORMAT=xxx-yyy :
#   Check `smidump -f yyy' output for all TESTMIBS read from dumps/xxx/
#   against nominal dumps/yyy-xxx/ files.
#
# FORMAT=orig-yyy : 
#   Check `smidump -f yyy' output for all TESTMIBS read from the libsmi MIB
#   repository against the original files from the repository. This is done
#   by extracting unified characteristics of both files of each check
#   (see the filter shell function) and comparing the diff with the nominal
#   diff in dumps/orig-yyy/.
#

FORMAT=`echo $0 | sed -e 's/^.*smidump-\(.*\).test/\1/'`
ACTUALDIR=smidump-${FORMAT}.out
NOMINALDIR=dumps/${FORMAT}
INFORMAT=`echo -$FORMAT | sed -e 's/-[^-]*$//' -e 's/-//'`
OUTFORMAT=`echo $FORMAT | sed -e 's/[a-z0-9]*-//'`



filter() {
    # 1. strip off comments
    # 2. condens white space
    # 3. remove ambigious white space
    # 4. strip off texts enclosed in double qoutes
    # 5. convert blanks back to nl, and finally
    # 6. sort
    sed -e 's/\"[a-z]*\"//g' | \
    sed -e 's/--[^\"-]*--//g' -e 's/--[^\"]*$//' | \
    tr '\t\n' '  ' | \
    sed -e 's/  */ /g' | \
    sed -e 's/SIZE (/SIZE(/g' -e 's/ }/}/g' | \
    sed -e 's/\"[^\"]*\"/\"\"/g' | \
    tr ' ' '\n' | \
    sort
}



rm -rf ${ACTUALDIR}
mkdir ${ACTUALDIR}

RC=0
FAILED=""
for mib in ${TESTMIBS} ; do
    if [ "$INFORMAT" -a "$INFORMAT" != "orig" ] ; then
        input=../dumps/${INFORMAT}/$mib
    else
        input=$mib
    fi
    echo "comparing \`smidump -f ${OUTFORMAT} $input' output with ${NOMINALDIR}/*."
    cd ${ACTUALDIR}
    ../../tools/smidump -c/dev/null -f ${OUTFORMAT} $input > $mib 2>/dev/null
    if [ ! -s $mib ] ; then
	rm $mib
	FILES=""
    else
	FILES="$mib"
    fi
    FILES="$FILES "`ls -1 | grep -v '\.diff' | grep '\.'`
    cd ..
    for file in $FILES ; do
	if [ "$INFORMAT" != "orig" ] ; then
	    @DIFF@ ${ACTUALDIR}/$file ${NOMINALDIR}/$file >> ${ACTUALDIR}/$file.diff
	else
	    filter < ../mibs/ietf/$mib > ${ACTUALDIR}/$file.orig
	    filter < ${ACTUALDIR}/$mib > ${ACTUALDIR}/$file.out
	    @DIFF@ ${ACTUALDIR}/$file.orig ${ACTUALDIR}/$file.out > ${ACTUALDIR}/$file
	    @DIFF@ ${ACTUALDIR}/$file ${NOMINALDIR}/$file > ${ACTUALDIR}/$file.diff
	fi
	if [ ! -s ${ACTUALDIR}/$file.diff ] ; then
	    rm ${ACTUALDIR}/$file.diff
	else
	    FAILED=1
	fi

	echo "cmp -s ${ACTUALDIR}/$file ${NOMINALDIR}/$file || \$CMDPREFIX cp -v ${ACTUALDIR}/$file ${NOMINALDIR}/$file" >> sync-dumps
    done
    rm -f ${ACTUALDIR}/*.orig ${ACTUALDIR}/*.out
done

if [ "$FAILED" ] ; then
    echo "*** smidump output differs, see ${ACTUALDIR}/*.diff"
    RC=1
fi

exit ${RC}