skip some skippable tests (#3102)
* tests: consolidate redundant, duplicated helper code These functions currently exist in a sourced shell library, but there is an identical copy of them in a single test file. Get rid of this duplicate definition. * tests: mark some tests as skipped if bc is not installed `exit 77` is the GNU exitcode protocol for tests that cannot be run because their prerequisites are not available. If `bc` is not installed, and it often isn't, the test can be short-circuited instead of failing; meson will report them in "warning yellow". * tests: mark some tests as skipped if support is not compiled Not all test cases can be cleanly marked as skipped -- sometimes, multiple things are checked, and having one be unavailable should not mean skipping all tests. But in a couple cases, a test file only tests one thing, and that may be skipped. In such cases, it can be semantically indicated in the test harness report collection, that a skip occurred.
This commit is contained in:
parent
eb4b21eec2
commit
e73f003d33
@ -7,32 +7,6 @@
|
|||||||
|
|
||||||
. ./variables.sh
|
. ./variables.sh
|
||||||
|
|
||||||
# is a difference beyond a threshold? return 0 (meaning all ok) or 1 (meaning
|
|
||||||
# error, or outside threshold)
|
|
||||||
#
|
|
||||||
# use bc since bash does not support fp math
|
|
||||||
break_threshold() {
|
|
||||||
diff=$1
|
|
||||||
threshold=$2
|
|
||||||
return $(echo "$diff <= $threshold" | bc -l)
|
|
||||||
}
|
|
||||||
|
|
||||||
# subtract, look for max difference less than a threshold
|
|
||||||
test_difference() {
|
|
||||||
before=$1
|
|
||||||
after=$2
|
|
||||||
threshold=$3
|
|
||||||
|
|
||||||
$vips subtract $before $after $tmp/difference.v
|
|
||||||
$vips abs $tmp/difference.v $tmp/abs.v
|
|
||||||
dif=$($vips max $tmp/abs.v)
|
|
||||||
|
|
||||||
if break_threshold $dif $threshold; then
|
|
||||||
echo "difference is $dif"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
test_rotate() {
|
test_rotate() {
|
||||||
im=$1
|
im=$1
|
||||||
inter=$2
|
inter=$2
|
||||||
|
@ -12,4 +12,6 @@ if test_supported jpegload_source; then
|
|||||||
|
|
||||||
# test max difference < 10
|
# test max difference < 10
|
||||||
test_difference $image $tmp/x.png 10
|
test_difference $image $tmp/x.png 10
|
||||||
|
else
|
||||||
|
exit 77
|
||||||
fi
|
fi
|
||||||
|
@ -14,4 +14,6 @@ if test_supported tiffload; then
|
|||||||
-1 -1 -1
|
-1 -1 -1
|
||||||
EOF
|
EOF
|
||||||
VIPS_STALL=1 $vips conv $tmp/x.tif $tmp/x2.tif $tmp/mask.con
|
VIPS_STALL=1 $vips conv $tmp/x.tif $tmp/x2.tif $tmp/mask.con
|
||||||
|
else
|
||||||
|
exit 77
|
||||||
fi
|
fi
|
||||||
|
@ -32,9 +32,14 @@ test_supported() {
|
|||||||
|
|
||||||
# is a difference beyond a threshold? return 0 (meaning all ok) or 1 (meaning
|
# is a difference beyond a threshold? return 0 (meaning all ok) or 1 (meaning
|
||||||
# error, or outside threshold)
|
# error, or outside threshold)
|
||||||
|
#
|
||||||
|
# use bc since bash does not support fp math
|
||||||
break_threshold() {
|
break_threshold() {
|
||||||
diff=$1
|
diff=$1
|
||||||
threshold=$2
|
threshold=$2
|
||||||
|
if ! command -v bc >/dev/null; then
|
||||||
|
exit 77
|
||||||
|
fi
|
||||||
return $(echo "$diff <= $threshold" | bc -l)
|
return $(echo "$diff <= $threshold" | bc -l)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user