xref: /aosp_15_r20/external/libxml2/test/scripts/test.sh (revision 7c5688314b92172186c154356a6374bf7684c3ca)
1*7c568831SAndroid Build Coastguard Worker#!/bin/sh
2*7c568831SAndroid Build Coastguard Worker
3*7c568831SAndroid Build Coastguard Workerset -e
4*7c568831SAndroid Build Coastguard Worker
5*7c568831SAndroid Build Coastguard Workerecho "## Scripts regression tests"
6*7c568831SAndroid Build Coastguard Worker
7*7c568831SAndroid Build Coastguard Workerif [ -n "$1" ]; then
8*7c568831SAndroid Build Coastguard Worker    xmllint=$1
9*7c568831SAndroid Build Coastguard Workerelse
10*7c568831SAndroid Build Coastguard Worker    xmllint=./xmllint
11*7c568831SAndroid Build Coastguard Workerfi
12*7c568831SAndroid Build Coastguard Worker
13*7c568831SAndroid Build Coastguard Workerexitcode=0
14*7c568831SAndroid Build Coastguard Worker
15*7c568831SAndroid Build Coastguard Workerfor i in test/scripts/*.script ; do
16*7c568831SAndroid Build Coastguard Worker    name=$(basename $i .script)
17*7c568831SAndroid Build Coastguard Worker    xml="./test/scripts/$name.xml"
18*7c568831SAndroid Build Coastguard Worker
19*7c568831SAndroid Build Coastguard Worker    if [ -f $xml ] ; then
20*7c568831SAndroid Build Coastguard Worker        if [ ! -f result/scripts/$name ] ; then
21*7c568831SAndroid Build Coastguard Worker            echo "New test file $name"
22*7c568831SAndroid Build Coastguard Worker
23*7c568831SAndroid Build Coastguard Worker            $xmllint --shell $xml < $i \
24*7c568831SAndroid Build Coastguard Worker                > result/scripts/$name \
25*7c568831SAndroid Build Coastguard Worker                2> result/scripts/$name.err
26*7c568831SAndroid Build Coastguard Worker        else
27*7c568831SAndroid Build Coastguard Worker            $xmllint --shell $xml < $i > shell.out 2> shell.err || true
28*7c568831SAndroid Build Coastguard Worker
29*7c568831SAndroid Build Coastguard Worker            if [ -f result/scripts/$name.err ]; then
30*7c568831SAndroid Build Coastguard Worker                resulterr="result/scripts/$name.err"
31*7c568831SAndroid Build Coastguard Worker            else
32*7c568831SAndroid Build Coastguard Worker                resulterr=/dev/null
33*7c568831SAndroid Build Coastguard Worker            fi
34*7c568831SAndroid Build Coastguard Worker
35*7c568831SAndroid Build Coastguard Worker            log=$(
36*7c568831SAndroid Build Coastguard Worker                diff -u result/scripts/$name shell.out || true;
37*7c568831SAndroid Build Coastguard Worker                diff -u $resulterr shell.err || true
38*7c568831SAndroid Build Coastguard Worker            )
39*7c568831SAndroid Build Coastguard Worker
40*7c568831SAndroid Build Coastguard Worker            if [ -n "$log" ] ; then
41*7c568831SAndroid Build Coastguard Worker                echo $name result
42*7c568831SAndroid Build Coastguard Worker                echo "$log"
43*7c568831SAndroid Build Coastguard Worker                exitcode=1
44*7c568831SAndroid Build Coastguard Worker            fi
45*7c568831SAndroid Build Coastguard Worker
46*7c568831SAndroid Build Coastguard Worker            rm shell.out shell.err
47*7c568831SAndroid Build Coastguard Worker        fi
48*7c568831SAndroid Build Coastguard Worker    fi
49*7c568831SAndroid Build Coastguard Workerdone
50*7c568831SAndroid Build Coastguard Worker
51*7c568831SAndroid Build Coastguard Workerexit $exitcode
52