Add -fsanitize=undefined test to standard tests.
This commit is contained in:
parent
150f50b673
commit
cd5b604ac1
|
@ -11,6 +11,8 @@
|
||||||
# do this:
|
# do this:
|
||||||
#
|
#
|
||||||
# -noasan skip the test that uses -fsanitize=address
|
# -noasan skip the test that uses -fsanitize=address
|
||||||
|
# -nousan skip the test that uses -fsanitize=undefined
|
||||||
|
# -nodebug skip the test that uses --enable-debug
|
||||||
# -nojit skip JIT tests
|
# -nojit skip JIT tests
|
||||||
# -nomain skip the main set of tests
|
# -nomain skip the main set of tests
|
||||||
# -notmp skip the test in a temporary directory
|
# -notmp skip the test in a temporary directory
|
||||||
|
@ -24,6 +26,8 @@
|
||||||
# much as possible in due course.
|
# much as possible in due course.
|
||||||
|
|
||||||
useasan=1
|
useasan=1
|
||||||
|
useusan=1
|
||||||
|
usedebug=1
|
||||||
usejit=1
|
usejit=1
|
||||||
usemain=1
|
usemain=1
|
||||||
usetmp=1
|
usetmp=1
|
||||||
|
@ -33,6 +37,8 @@ verbose=0
|
||||||
while [ $# -gt 0 ] ; do
|
while [ $# -gt 0 ] ; do
|
||||||
case $1 in
|
case $1 in
|
||||||
-noasan) useasan=0;;
|
-noasan) useasan=0;;
|
||||||
|
-nousan) useusan=0;;
|
||||||
|
-nodebug) usedebug=0;;
|
||||||
-nojit) usejit=0;;
|
-nojit) usejit=0;;
|
||||||
-nomain) usemain=0;;
|
-nomain) usemain=0;;
|
||||||
-notmp) usetmp=0;;
|
-notmp) usetmp=0;;
|
||||||
|
@ -137,7 +143,7 @@ runtest()
|
||||||
pcre2_8=$?
|
pcre2_8=$?
|
||||||
|
|
||||||
if [ $nlok -gt 0 ]; then
|
if [ $nlok -gt 0 ]; then
|
||||||
echo "Running C library tests $withvalgrind"
|
echo "Running PCRE2 library tests $withvalgrind"
|
||||||
$srcdir/RunTest $valgrind >teststdout 2>teststderr
|
$srcdir/RunTest $valgrind >teststdout 2>teststderr
|
||||||
if [ $? -ne 0 -o -s teststderr ]; then
|
if [ $? -ne 0 -o -s teststderr ]; then
|
||||||
echo " "
|
echo " "
|
||||||
|
@ -147,7 +153,7 @@ runtest()
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "Skipping C library tests: newline is $nl"
|
echo "Skipping PCRE2 library tests: newline is $nl"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $nlok -gt 0 -a $pcre2_8 -gt 0 ]; then
|
if [ $nlok -gt 0 -a $pcre2_8 -gt 0 ]; then
|
||||||
|
@ -184,10 +190,12 @@ runtest()
|
||||||
# Update the total count whenever a new test is added; it is used to show
|
# Update the total count whenever a new test is added; it is used to show
|
||||||
# progess as each test is run.
|
# progess as each test is run.
|
||||||
|
|
||||||
testtotal=`expr 21 \* $usemain + \
|
testtotal=`expr 20 \* $usemain + \
|
||||||
|
1 \* $usemain \* $usedebug + \
|
||||||
1 \* $usetmp + \
|
1 \* $usetmp + \
|
||||||
1 \* $ISGCC \* $usemain + \
|
1 \* $ISGCC \* $usemain + \
|
||||||
1 \* $ISGCC \* $usemain \* $useasan + \
|
1 \* $ISGCC \* $usemain \* $useasan + \
|
||||||
|
1 \* $ISGCC \* $usemain \* $useusan + \
|
||||||
13 \* $usejit + \
|
13 \* $usejit + \
|
||||||
\( 3 + 2 \* $usejit \) \* $usevalgrind`
|
\( 3 + 2 \* $usejit \) \* $usevalgrind`
|
||||||
testcount=0
|
testcount=0
|
||||||
|
@ -210,7 +218,9 @@ export srcdir
|
||||||
# -fsanitize=address, which also may throw up new warnings as well as checking
|
# -fsanitize=address, which also may throw up new warnings as well as checking
|
||||||
# things at runtime. Using -fsanitize=address increases the size of stack
|
# things at runtime. Using -fsanitize=address increases the size of stack
|
||||||
# frames by a lot, so run this test with --disable-stack-for-recursion, as
|
# frames by a lot, so run this test with --disable-stack-for-recursion, as
|
||||||
# otherwise RunTest may fail on test 2.
|
# otherwise RunTest may fail on test 2. Finally, run another test using
|
||||||
|
# -fsanitize=undefined -std-gnu99 to check for runtime actions that are not
|
||||||
|
# well defined.
|
||||||
|
|
||||||
if [ $usejit -ne 0 ]; then
|
if [ $usejit -ne 0 ]; then
|
||||||
enable_jit=--enable-jit
|
enable_jit=--enable-jit
|
||||||
|
@ -232,6 +242,13 @@ if [ $ISGCC -ne 0 -a $usemain -ne 0 ]; then
|
||||||
opts="--disable-shared $enable_jit --disable-stack-for-recursion --enable-pcre2-16 --enable-pcre2-32"
|
opts="--disable-shared $enable_jit --disable-stack-for-recursion --enable-pcre2-16 --enable-pcre2-32"
|
||||||
runtest
|
runtest
|
||||||
fi
|
fi
|
||||||
|
if [ $useusan -ne 0 ]; then
|
||||||
|
echo "------- Maximally configured test with -fsanitize=undefined -std=gnu99 -------"
|
||||||
|
CFLAGS="$OFLAGS $SAVECFLAGS -fsanitize=undefined -std=gnu99"
|
||||||
|
echo "CFLAGS=$CFLAGS"
|
||||||
|
opts="--disable-shared $enable_jit --disable-stack-for-recursion --enable-pcre2-16 --enable-pcre2-32"
|
||||||
|
runtest
|
||||||
|
fi
|
||||||
CFLAGS="$OFLAGS $SAVECFLAGS"
|
CFLAGS="$OFLAGS $SAVECFLAGS"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -239,9 +256,11 @@ echo "---------- CFLAGS for the remaining tests ----------"
|
||||||
echo "CFLAGS=$CFLAGS"
|
echo "CFLAGS=$CFLAGS"
|
||||||
|
|
||||||
if [ $usemain -ne 0 ]; then
|
if [ $usemain -ne 0 ]; then
|
||||||
echo "---------- Maximally configured test with --enable-debug ----------"
|
if [ $usedebug -ne 0 ]; then
|
||||||
opts="--disable-shared $enable_jit --enable-pcre2-16 --enable-pcre2-32 --enable-debug"
|
echo "---------- Maximally configured test with --enable-debug ----------"
|
||||||
runtest
|
opts="--disable-shared $enable_jit --enable-pcre2-16 --enable-pcre2-32 --enable-debug"
|
||||||
|
runtest
|
||||||
|
fi
|
||||||
|
|
||||||
echo "---------- Non-JIT tests in the current directory ----------"
|
echo "---------- Non-JIT tests in the current directory ----------"
|
||||||
for opts in \
|
for opts in \
|
||||||
|
|
Loading…
Reference in New Issue