2025-03-17 12:53:25 -07:00

130 lines
2.7 KiB
Bash

#!/bin/sh
. $COMPILER_ROOT/scripts/test-utils.sh
fpp_to_cpp=$COMPILER_ROOT/bin/fpp-to-cpp
compare()
{
outfile=$1
diff -u $outfile.ref.txt $outfile.out.txt > $outfile.diff.txt 2>&1
}
run_test()
{
args=$1
infile=$2
if test -n "$3"
then
outfile=$3
else
outfile=$infile
fi
$fpp_to_cpp $args $infile.fpp 2>&1 | remove_author | remove_path_prefix > $outfile.out.txt
compare $outfile
}
diff_h_hpp()
{
if test $# -ne 1
then
echo 'usage: diff_h_hpp file' 1>&2
exit 1
fi
file=$1
diff -u $file'Ac.ref.hpp' $file'Ac.hpp' && \
diff -u $file'Ac.ref.h' $file'Ac.h'
}
diff_hpp()
{
if test $# -ne 1
then
echo 'usage: diff_hpp file' 1>&2
exit 1
fi
file=$1
diff -u $file'Ac.ref.hpp' $file'Ac.hpp'
}
. ./tests.sh
# Default tests
for t in $tests
do
echo "
$t()
{
run_test '' $t
}"
done > default-tests.sh
. ./default-tests.sh
diff_cpp()
{
if test $# -ne 1
then
echo 'usage: diff_cpp file' 1>&2
exit 1
fi
file=$1
diff -u $file'Ac.ref.hpp' $file'Ac.hpp' && \
diff -u $file'Ac.ref.cpp' $file'Ac.cpp'
}
diff_cpp_suffix()
{
if test $# -lt 1 || test $# -gt 2
then
echo 'usage: diff_cpp_suffix file [suffix]' 1>&2
exit 1
fi
file=$1
target_suffix=$2
cp $file'Ac'.hpp $file'Ac'$target_suffix.out.hpp && \
diff -u $file'Ac'$target_suffix.ref.hpp $file'Ac'$target_suffix.out.hpp && \
cp $file'Ac'.cpp $file'Ac'$target_suffix.out.cpp && \
diff -u $file'Ac'$target_suffix.ref.cpp $file'Ac'$target_suffix.out.cpp
}
diff_template()
{
file=$1
remove_author < $file.template.hpp > $file.template.out.hpp && \
diff -u $file.template.ref.hpp $file.template.out.hpp && \
remove_author < $file.template.cpp > $file.template.out.cpp && \
diff -u $file.template.ref.cpp $file.template.out.cpp
}
diff_test()
{
file=$1
diff -u $file'TesterBase.ref.hpp' $file'TesterBase.hpp' && \
diff -u $file'TesterBase.ref.cpp' $file'TesterBase.cpp' && \
diff -u $file'GTestBase.ref.hpp' $file'GTestBase.hpp' && \
diff -u $file'GTestBase.ref.cpp' $file'GTestBase.cpp' && \
if test -f $file'TesterHelpers.ref.cpp'
then
diff -u $file'TesterHelpers.ref.cpp' $file'TesterHelpers.cpp'
fi
}
diff_test_template()
{
file=$1
remove_author < $file'Tester.hpp' > $file'Tester.out.hpp' && \
diff -u $file'Tester.ref.hpp' $file'Tester.out.hpp' && \
remove_author < $file'Tester.cpp' > $file'Tester.out.cpp' && \
diff -u $file'Tester.ref.cpp' $file'Tester.out.cpp' && \
if test -f $file'TesterHelpers.ref.cpp'
then
diff -u $file'TesterHelpers.ref.cpp' $file'TesterHelpers.cpp'
fi && \
remove_author < $file'TestMain.cpp' > $file'TestMain.out.cpp' && \
diff -u $file'TestMain.ref.cpp' $file'TestMain.out.cpp'
}
. ./run.sh
run_suite $tests