#!/bin/bash VERBOSE="" # set VERBOSE="v" for verbose mode # that @expression@ will be substituted by the 'confgure' script EXTENSIONS="@SUPPORTED_FORMATS@" # Here are the extensions that should support saving according to docs #CAN_SAVE=" BMP DDS HDR ICO JPG PCX PNG PPM PSD RAW SGI TGA TIF XPM " RAW and XPM are problematic... CAN_SAVE="BMP DDS EXR HDR ICO JP2 JPG PCX PNG PPM PSD SGI TGA TIF" # List of formats that we don't test since they are problematic PROBLEMATIC="RAW WBMP XPM" echo "Running saving and loading consistency test..." FAILED_FORMATS="" PASSED_FORMATS="" # if using Wine makes sense, use it... if [ "x@BUILD_OS@" != "x@HOST_OS@" ] then if [ "x@PLATFORM@" = "xMINGW32" -o "x@PLATFORM@" = "xCYGWIN" ] then test $(which wine 2> /dev/null) && WINE="wine" echo "Warning: Using wine to test executables (not 100% reliable)" fi fi for EXTENSION in $EXTENSIONS do #echo expr match "' $CAN_SAVE '" '.*\s'$EXTENSION'\s.*' if [ $(expr match "' $CAN_SAVE '" '.*\s'$EXTENSION'\s.*') -eq 0 -o $(expr match "' $PROBLEMATIC '" '.*\s'$EXTENSION'\s.*') -ne 0 ] then # This extension is not considered as supported... continue; fi test -n "$VERBOSE" && echo $WINE ./testil@EXEEXT@ -e $EXTENSION # EXEEXT comes in when one compiles on platforms that append extensions to executables (testil.exe) $WINE ./testil@EXEEXT@ -e$VERBOSE $EXTENSION # We have to capture whether the test has failed or not if [ ! $? -eq 0 ] then # we have an error here... FAILED_FORMATS="$FAILED_FORMATS $EXTENSION" FAILED="$?" else #no error... PASSED_FORMATS="$PASSED_FORMATS $EXTENSION" fi done #let's tell something to the user as well: if [ "x$FAILED" = "x" ] then #everything went fine echo "All examined formats were OK:$PASSED_FORMATS" else #something went wrong echo "Errors were encountered during the test :-(" echo "Formats that were OK:$PASSED_FORMATS" echo "Failed formats: $FAILED_FORMATS" FAILED="1" fi # end of something went wrong echo "Problematic (untested) formats: $PROBLEMATIC" echo # And we have to tell the result to the shell, too... exit $FAILED