X-Git-Url: http://git.draconx.ca/gitweb/liblbx.git/blobdiff_plain/abebb179629944e7c956857be2f6d6705fb33309..d1c92ce9f559ece233cb82425d634bf6484aff2f:/tests/util/test-init.sh diff --git a/tests/util/test-init.sh b/tests/util/test-init.sh index d59b853..2c72bf3 100644 --- a/tests/util/test-init.sh +++ b/tests/util/test-init.sh @@ -113,20 +113,57 @@ dx_pam_header() { END { exit ret }' ${1+"$@"} } -dx_check_pam_md5_() { +# Set all transparent pixels in a PAM image to black. This assumes (fine for +# LBX images) that all pixels are either fully-transparent or fully-opaque. +dx_pam_normalize() { dx_pam_header "$1" > "$1.sh" || return - . "./$1.sh" || return + ( . "./$1.sh" || exit + case $TUPLTYPE in + GRAYSCALE_ALPHA) $PAMCHANNEL -infile "$1" 1 > "$1.alpha" ;; + RGB_ALPHA) $PAMCHANNEL -infile "$1" 3 > "$1.alpha" ;; + *) rm -f "$1.alpha" ;; + esac + ) || return + + if test -e "$1.alpha"; then + $PAMARITH -and "$1" "$1.alpha" + else + cat "$1" + fi +} - tail -n +"$ENDHDR" "$1" > "$1.px" || return - echo "$2 $1.px" > "$1.md5" || return - $MD5SUM -c "$1.md5" +dx_check_pam_md5_() { + ( dx_pam_header "$1" > "$1.sh" || exit + . "./$1.sh" || exit + tail -n +"$ENDHDR" "$1" > "$1.px" + ) || return 55 + + $MD5SUM -c < "$1.tmp"; then + mv -f "$1.tmp" "$1" + dx_md5_reliable=true + else + dx_md5_reliable=false + fi + + dx_check_pam_md5_ "$1" "$2" + case $? in + 0) ok_ "$1" ;; + 55) not_ok_ "$1" ;; + *) if $dx_md5_reliable; then + not_ok_ "$1" + else + skip_ -r "netpbm unavailable or broken" "$1" + fi ;; + esac else - skip_ "$1" + skip_ -r "md5sum unavailable or broken" "$1" fi }