mirror of
https://github.com/clearlinux/bsdiff.git
synced 2026-05-13 18:24:00 +00:00
In case the system valgrind is not functioning properly, allow the test suite to run without using the tool by setting SKIP_VALGRIND=1 for `make check`. Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
115 lines
3.4 KiB
Bash
Executable File
115 lines
3.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# $srcdir variable is set by automake environment
|
|
cd $srcdir/test
|
|
|
|
# number is incremented after running every test
|
|
testnum=0
|
|
|
|
sudo rm -f *.diff *.out
|
|
|
|
VALGRIND="valgrind -q"
|
|
if [ -n "$SKIP_VALGRIND" ]; then
|
|
VALGRIND=""
|
|
fi
|
|
|
|
libdir="$abs_builddir/.libs"
|
|
ldpath="LD_LIBRARY_PATH=$libdir"
|
|
BSDIFF="sudo $ldpath $VALGRIND $libdir/bsdiff"
|
|
BSPATCH="sudo $ldpath $VALGRIND $libdir/bspatch"
|
|
|
|
# If exit status is 0, the test succeeded. Else it failed.
|
|
check_success() {
|
|
res=$?
|
|
[ -n "$1" ] && msg="$1" || msg=""
|
|
testnum=$(expr $testnum + 1)
|
|
if [ $res -ne 0 ]; then
|
|
echo "not ok $testnum - $msg"
|
|
else
|
|
echo "ok $testnum"
|
|
fi
|
|
}
|
|
|
|
# If exit status is 255, the test succeeded. Else it failed.
|
|
check_failure() {
|
|
res=$?
|
|
[ -n "$1" ] && msg="$1" || msg=""
|
|
testnum=$(expr $testnum + 1)
|
|
if [ $res -ne 255 ]; then
|
|
echo "not ok $testnum - $msg"
|
|
else
|
|
echo "ok $testnum"
|
|
fi
|
|
}
|
|
|
|
echo "Running test #5 ..."
|
|
$BSPATCH data/5.bspatch.original 5.out data/5.bspatch.diff
|
|
check_success
|
|
|
|
echo "Running test #6 ..."
|
|
$BSPATCH data/6.bspatch.original 6.out data/6.bspatch.diff
|
|
check_success
|
|
|
|
echo "Running test #7 ..."
|
|
$BSPATCH data/7.bspatch.original 7.out data/7.bspatch.diff
|
|
check_success
|
|
|
|
echo "Running test #8 ..."
|
|
$BSPATCH data/8.bspatch.original 8.out data/8.bspatch.diff
|
|
check_success
|
|
|
|
echo "Running test #9 ..."
|
|
$BSPATCH data/9.bspatch.original 9.out data/9.bspatch.diff
|
|
diff data/9.bspatch.modified 9.out
|
|
check_success "output does not match expected!!"
|
|
|
|
echo "Running test #10 ..."
|
|
$BSPATCH data/10.bspatch.original 10.out data/10.bspatch.diff
|
|
diff data/10.bspatch.modified 10.out
|
|
check_success "output does not match expected!!"
|
|
|
|
#same as 9 but with zeros encoding
|
|
echo "Running test #11 ..."
|
|
$BSPATCH data/9.bspatch.original 11.out data/11.bspatch.diff
|
|
diff data/9.bspatch.modified 11.out
|
|
check_success "output does not match expected!!"
|
|
|
|
echo "Running test #12 ..."
|
|
$BSPATCH data/12.bspatch.original 12.out data/12.bspatch.diff
|
|
diff data/12.bspatch.modified 12.out
|
|
check_success "output does not match expected!!"
|
|
|
|
echo "Running test #13 ..."
|
|
$BSDIFF data/13.bspatch.original data/13.bspatch.modified 13.diff any
|
|
$BSPATCH data/13.bspatch.original 13.out 13.diff
|
|
diff data/13.bspatch.modified 13.out
|
|
check_success "output does not match expected!!"
|
|
|
|
# Next a very loooong running test, but one which successfully condenses the 2MB
|
|
# original file pair into a 26kB bsdiff. The bsdiff computation alone (ie:
|
|
# non-valgrind'd) takes ~20minutes on a decent build machine. Running it
|
|
# through valgrind takes many many hours to run to completion. Therefore leave
|
|
# filepair #14 as one for only occasional use in long-running regression
|
|
# testing. The other file pairs can be check quickly enough that they can be
|
|
# used in a regression test run at every check-in of code changes to the bsdiff
|
|
# implementation.
|
|
#
|
|
#echo "Running test #14 ..."
|
|
#$BSDIFF data/14.bspatch.original data/14.bspatch.modified 14.diff any
|
|
#$BSPATCH data/14.bspatch.original 14.out 14.diff
|
|
#diff data/14.bspatch.modified 14.out
|
|
#check_success "output does not match expected!!"
|
|
|
|
echo "Running test #15 ..."
|
|
$BSDIFF data/15.bspatch.original data/15.bspatch.modified 15.diff any
|
|
# expected output: "Failed to create delta (-1)"
|
|
check_failure "patch creation has memory management issue!"
|
|
|
|
echo "Running test #16 ..."
|
|
# any valgrind errors may indicate a buffer overflow
|
|
$BSPATCH data/16.bspatch.original 16.out data/16.bspatch.diff
|
|
check_success
|
|
|
|
# For TAP support, output the plan
|
|
echo "1..${testnum}"
|