-dnl Copyright © 2009, 2013 Nick Bowler
+dnl Copyright © 2009, 2013-2014 Nick Bowler
dnl
dnl License WTFPL2: Do What The Fuck You Want To Public License, version 2.
dnl This is free software: you are free to do what the fuck you want to.
AM_CONDITIONAL([BUILD_LBXGUI], [$have_gtk])
+# Check for utilities used by the test suite.
DX_PROG_MD5SUM
AS_IF([test x"$dx_cv_md5sum_works" = x"yes"],
[AC_SUBST([HAVE_MD5SUM], [true])],
[AC_SUBST([HAVE_MD5SUM], [false])])
AC_SUBST([MD5SUM])
+AC_CHECK_PROGS([PAMARITH], [pamarith], [false])
+AC_CHECK_PROGS([PAMCHANNEL], [pamchannel], [false])
+AC_SUBST([PAMCHANNEL])
+AC_SUBST([PAMARITH])
+
AC_CONFIG_FILES([
tests/util/test-defs.sh
Makefile
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 <<EOF
+$2 $1.px
+EOF
}
dx_check_pam_md5() {
if $HAVE_MD5SUM; then
- command_ok_ "$1" dx_check_pam_md5_ "$1" "$2"
+ if dx_pam_normalize "$1" > "$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
}