Add a self-test for gm, similar to our self-test for skdiff.
Review URL: https://codereview.appspot.com/6827068 git-svn-id: http://skia.googlecode.com/svn/trunk@6380 2bbb7eff-a529-9590-31e7-b0007b416f81
BIN
gm/tests/inputs/dashing-correct-images/4444/dashing.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
gm/tests/inputs/dashing-correct-images/4444/dashing2.png
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
gm/tests/inputs/dashing-incorrect-images/4444/dashing.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
gm/tests/inputs/dashing-incorrect-images/4444/dashing2.png
Normal file
After Width: | Height: | Size: 22 KiB |
@ -0,0 +1 @@
|
||||
out/Debug/gm --hierarchy --match dashing --config 4444 -r gm/tests/inputs/dashing-correct-images -w gm/tests/outputs/dashing-compared-against-correct/output-actual/images
|
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 23 KiB |
@ -0,0 +1 @@
|
||||
0
|
@ -0,0 +1,5 @@
|
||||
reading from gm/tests/inputs/dashing-correct-images
|
||||
writing to gm/tests/outputs/dashing-compared-against-correct/output-actual/images
|
||||
drawing... dashing2 [640 480]
|
||||
drawing... dashing [640 300]
|
||||
Ran 2 tests: 2 passed, 0 failed, 0 missing reference images
|
@ -0,0 +1 @@
|
||||
out/Debug/gm --hierarchy --match dashing --config 4444 -r gm/tests/inputs/dashing-incorrect-images -w gm/tests/outputs/dashing-compared-against-incorrect/output-actual/images
|
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 23 KiB |
@ -0,0 +1 @@
|
||||
255
|
@ -0,0 +1,7 @@
|
||||
reading from gm/tests/inputs/dashing-incorrect-images
|
||||
writing to gm/tests/outputs/dashing-compared-against-incorrect/output-actual/images
|
||||
drawing... dashing2 [640 480]
|
||||
drawing... dashing [640 300]
|
||||
----- max pixel mismatch for 4444/dashing is 51
|
||||
Ran 2 tests: 1 passed, 1 failed, 0 missing reference images
|
||||
4444/dashing pixel_error 51
|
62
gm/tests/run.sh
Executable file
@ -0,0 +1,62 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Self-tests for gm, based on tools/tests/run.sh
|
||||
|
||||
# cd into .../trunk so all the paths will work
|
||||
cd $(dirname $0)/../..
|
||||
|
||||
# TODO(epoger): make it look in Release and/or Debug
|
||||
GM_BINARY=out/Debug/gm
|
||||
|
||||
# Compare contents of all files within directories $1 and $2,
|
||||
# EXCEPT for any dotfiles.
|
||||
# If there are any differences, a description is written to stdout and
|
||||
# we exit with a nonzero return value.
|
||||
# Otherwise, we write nothing to stdout and return.
|
||||
function compare_directories {
|
||||
if [ $# != 2 ]; then
|
||||
echo "compare_directories requires exactly 2 parameters, got $#"
|
||||
exit 1
|
||||
fi
|
||||
diff -r --exclude=.* $1 $2
|
||||
if [ $? != 0 ]; then
|
||||
echo "failed in: compare_directories $1 $2"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Run gm...
|
||||
# - with the arguments in $1
|
||||
# - writing resulting images into $2/output-actual/images
|
||||
# - writing stdout into $2/output-actual/stdout
|
||||
# - writing return value into $2/output-actual/return_value
|
||||
# Then compare all of those against $2/output-expected .
|
||||
function gm_test {
|
||||
if [ $# != 2 ]; then
|
||||
echo "gm_test requires exactly 2 parameters, got $#"
|
||||
exit 1
|
||||
fi
|
||||
GM_ARGS="$1"
|
||||
ACTUAL_OUTPUT_DIR="$2/output-actual"
|
||||
EXPECTED_OUTPUT_DIR="$2/output-expected"
|
||||
|
||||
rm -rf $ACTUAL_OUTPUT_DIR
|
||||
mkdir -p $ACTUAL_OUTPUT_DIR
|
||||
COMMAND="$GM_BINARY $GM_ARGS -w $ACTUAL_OUTPUT_DIR/images"
|
||||
echo "$COMMAND" >$ACTUAL_OUTPUT_DIR/command_line
|
||||
$COMMAND &>$ACTUAL_OUTPUT_DIR/stdout
|
||||
echo $? >$ACTUAL_OUTPUT_DIR/return_value
|
||||
|
||||
compare_directories $EXPECTED_OUTPUT_DIR $ACTUAL_OUTPUT_DIR
|
||||
}
|
||||
|
||||
GM_TESTDIR=gm/tests
|
||||
GM_INPUTS=$GM_TESTDIR/inputs
|
||||
GM_OUTPUTS=$GM_TESTDIR/outputs
|
||||
|
||||
gm_test "--hierarchy --match dashing --config 4444 -r $GM_INPUTS/dashing-correct-images" "$GM_OUTPUTS/dashing-compared-against-correct"
|
||||
|
||||
# In this case, dashing.png has different pixels, but dashing2.png differs only in PNG encoding (identical pixels)
|
||||
gm_test "--hierarchy --match dashing --config 4444 -r $GM_INPUTS/dashing-incorrect-images" "$GM_OUTPUTS/dashing-compared-against-incorrect"
|
||||
|
||||
echo "All tests passed."
|
@ -2,7 +2,9 @@
|
||||
|
||||
# Tests for our tools.
|
||||
# TODO: for now, it only tests skdiff
|
||||
# TODO: for now, assumes that it is being run from .../trunk
|
||||
|
||||
# cd into .../trunk so all the paths will work
|
||||
cd $(dirname $0)/../..
|
||||
|
||||
# TODO: make it look in Release and/or Debug
|
||||
SKDIFF_BINARY=out/Debug/skdiff
|
||||
@ -13,6 +15,10 @@ SKDIFF_BINARY=out/Debug/skdiff
|
||||
# we exit with a nonzero return value.
|
||||
# Otherwise, we write nothing to stdout and return.
|
||||
function compare_directories {
|
||||
if [ $# != 2 ]; then
|
||||
echo "compare_directories requires exactly 2 parameters, got $#"
|
||||
exit 1
|
||||
fi
|
||||
diff --exclude=.* $1 $2
|
||||
if [ $? != 0 ]; then
|
||||
echo "failed in: compare_directories $1 $2"
|
||||
@ -24,6 +30,10 @@ function compare_directories {
|
||||
# to write its output, if any, to directory $2/output-actual).
|
||||
# Then compare its results against those in $2/output-expected.
|
||||
function skdiff_test {
|
||||
if [ $# != 2 ]; then
|
||||
echo "skdiff_test requires exactly 2 parameters, got $#"
|
||||
exit 1
|
||||
fi
|
||||
SKDIFF_ARGS="$1"
|
||||
ACTUAL_OUTPUT_DIR="$2/output-actual"
|
||||
EXPECTED_OUTPUT_DIR="$2/output-expected"
|
||||
|