89 lines
1.8 KiB
Bash
Executable File
89 lines
1.8 KiB
Bash
Executable File
#! /bin/sh
|
|
|
|
set -ex
|
|
|
|
TCC=${TCC-./tcc}
|
|
MESCC=${MESCC-mescc}
|
|
MES_PREFIX=${MES_PREFIX-../mes}
|
|
MES_PREFIX=${MES_PREFIX-${MESCC%/*}}
|
|
OBJDUMP=${OBJDUMP-objdump}
|
|
DIFF=${DIFF-diff}
|
|
|
|
unset C_INCLUDE_PATH LIBRARY_PATH
|
|
|
|
t=${1-$MES_PREFIX/lib/tests/scaffold/t.c}
|
|
mkdir -p scaffold/tests
|
|
b=scaffold/tests/${t##*/}
|
|
rm -f "$b".i686-unknown-linux-gnu-out
|
|
rm -f "$b".mes-out
|
|
|
|
r=0
|
|
if [ -x ./i686-unknown-linux-gnu-tcc ]; then
|
|
./i686-unknown-linux-gnu-tcc\
|
|
-c\
|
|
-o "$b".mes-gcc-o\
|
|
-nostdlib\
|
|
-g\
|
|
-m32\
|
|
-D __TINYC__=1\
|
|
-I $MES_PREFIX/include\
|
|
-I $MES_PREFIX/scaffold/tests\
|
|
-I $MES_PREFIX/scaffold/tinycc\
|
|
"$t" &> 1
|
|
#$OBJDUMP -d "$t".mes-gcc-o > 1.s
|
|
./i686-unknown-linux-gnu-tcc\
|
|
-static\
|
|
-o "$b".mes-gcc-out\
|
|
-L .\
|
|
"$b".mes-gcc-o\
|
|
__fixdfdi.o -ltcc1\
|
|
&> 1.link
|
|
set +e
|
|
"$b".mes-gcc-out arg1 arg2 arg3 arg4 arg5 > "$b".mes-gcc-stdout
|
|
m=$?
|
|
set -e
|
|
[ -f "$t".exit ] && r=$(cat "$t".exit)
|
|
[ $m = $r ]
|
|
if [ -f "$t".expect ]; then
|
|
$DIFF -ub "$t".expect "$b".mes-gcc-stdout;
|
|
fi
|
|
fi
|
|
|
|
$TCC\
|
|
-c\
|
|
-g\
|
|
-m32\
|
|
-o "$b".mes-o\
|
|
-D __TINYC__=1\
|
|
-I $MES_PREFIX/include\
|
|
-I $MES_PREFIX/scaffold/tests\
|
|
-I $MES_PREFIX/scaffold/tinycc\
|
|
"$t" &> 2
|
|
$OBJDUMP -d "$b".mes-o > 2.s || true
|
|
$TCC\
|
|
-static\
|
|
-o "$b".mes-out\
|
|
-g\
|
|
-m32\
|
|
-D __TINYC__=1\
|
|
-I $MES_PREFIX/include\
|
|
-I $MES_PREFIX/scaffold/tests\
|
|
-I $MES_PREFIX/scaffold/tinycc\
|
|
"$t"\
|
|
__fixdfdi.o -ltcc1\
|
|
&> 2.link
|
|
set +e
|
|
"$b".mes-out arg1 arg2 arg3 arg4 arg5 > "$b".mes-stdout
|
|
m=$?
|
|
#$OBJDUMP -d "$t".mes-out > 2.x
|
|
|
|
set -e
|
|
[ $m = $r ]
|
|
[ -f "$t".exit ] && r=$(cat "$t".exit)
|
|
if [ -f "$t".expect ]; then
|
|
$DIFF -ub "$t".expect "$b".mes-stdout;
|
|
fi
|
|
|
|
#diff -y 1.s 2.s
|
|
#diff -y 1 2
|