Blame test/eps-test.sh

Packit Service 21b5d1
#!/bin/bash
Packit Service 21b5d1
# Test driver for EPS files
Packit Service 21b5d1
Packit Service 21b5d1
source ./functions.source
Packit Service 21b5d1
Packit Service 21b5d1
Packit Service 21b5d1
(   cd "$testdir"
Packit Service 21b5d1
Packit Service 21b5d1
    ##
Packit Service 21b5d1
    # what version of exiv2 are we using?
Packit Service 21b5d1
    exiv2version="`$bin/exiv2 -V | sed -n '1 s,^exiv2 [^ ]* \([^ ]*\).*,\1,p'`"
Packit Service 21b5d1
    if [ -z "$exiv2version" ]; then
Packit Service 21b5d1
        echo "Error: Unable to determine Exiv2 version"
Packit Service 21b5d1
        exit 1
Packit Service 21b5d1
    fi
Packit Service 21b5d1
    if [ ! -d $datadir/eps/ ]; then
Packit Service 21b5d1
        echo "Error: $datadir/eps/ does not exist"
Packit Service 21b5d1
        exit 1
Packit Service 21b5d1
    fi
Packit Service 21b5d1
Packit Service 21b5d1
    ##
Packit Service 21b5d1
    # ensure that no data file is already stamped with the current version
Packit Service 21b5d1
    for file in $datadir/eps/eps-*.eps.*; do
Packit Service 21b5d1
        if ! grep "_Exiv2Version_" "$file" >/dev/null ; then
Packit Service 21b5d1
            echo "Error: $file contains hard-coded Exiv2 version"
Packit Service 21b5d1
            exit 1
Packit Service 21b5d1
        fi
Packit Service 21b5d1
    done
Packit Service 21b5d1
Packit Service 21b5d1
    ##
Packit Service 21b5d1
    # get down to work!
Packit Service 21b5d1
    for file in $datadir/eps/eps-*.eps; do
Packit Service 21b5d1
        image="`basename "$file" .eps`"
Packit Service 21b5d1
Packit Service 21b5d1
        printf "." >&3
Packit Service 21b5d1
Packit Service 21b5d1
        echo
Packit Service 21b5d1
        echo "-----> $image.eps <-----"
Packit Service 21b5d1
Packit Service 21b5d1
        copyTestFile "eps/$image.eps" "$image.eps"
Packit Service 21b5d1
Packit Service 21b5d1
        echo
Packit Service 21b5d1
        echo "Command: exiv2 -u -pa $image.eps"
Packit Service 21b5d1
        runTest exiv2 -u -pa "$image.eps"
Packit Service 21b5d1
        exitcode="$?"
Packit Service 21b5d1
        echo "Exit code: $exitcode"
Packit Service 21b5d1
Packit Service 21b5d1
        if [ "$exitcode" -ne 0 -a "$exitcode" -ne 253 ] ; then
Packit Service 21b5d1
            continue
Packit Service 21b5d1
        fi
Packit Service 21b5d1
Packit Service 21b5d1
        echo
Packit Service 21b5d1
        echo "Command: exiv2 -dx $image.eps"
Packit Service 21b5d1
        runTest exiv2 -dx "$image.eps"
Packit Service 21b5d1
        exitcode="$?"
Packit Service 21b5d1
        echo "Exit code: $exitcode"
Packit Service 21b5d1
Packit Service 21b5d1
        if [ "$exitcode" -eq 0 ] ; then
Packit Service 21b5d1
            # using perl instead of sed, because on some systems sed adds a line ending at EOF
Packit Service 21b5d1
            perl -pe "s,_Exiv2Version_,$exiv2version," < "$datadir/eps/$image.eps.delxmp" > "$image.eps.delxmp"
Packit Service 21b5d1
Packit Service 21b5d1
            if ! diff -q $diffargs "$image.eps.delxmp" "$image.eps" ; then
Packit Service 21b5d1
                continue
Packit Service 21b5d1
            fi
Packit Service 21b5d1
Packit Service 21b5d1
            # Ensure that "exiv2 -ex" won't merge metadata into the
Packit Service 21b5d1
            # *.exv file generated by a previous run of the test suite.
Packit Service 21b5d1
            rm -f "$image.exv"
Packit Service 21b5d1
Packit Service 21b5d1
            echo
Packit Service 21b5d1
            echo "Command: exiv2 -f -ex $image.eps"
Packit Service 21b5d1
            runTest exiv2 -f -ex "$image.eps"
Packit Service 21b5d1
            echo "Exit code: $?"
Packit Service 21b5d1
Packit Service 21b5d1
            if ! diff -q  $diffargs "$datadir/eps/eps-test-delxmp.exv" "$image.exv" ; then
Packit Service 21b5d1
                continue
Packit Service 21b5d1
            fi
Packit Service 21b5d1
        fi
Packit Service 21b5d1
Packit Service 21b5d1
        echo
Packit Service 21b5d1
        echo "Restore: $image.eps"
Packit Service 21b5d1
        copyTestFile "eps/$image.eps" "$image.eps"
Packit Service 21b5d1
Packit Service 21b5d1
        echo
Packit Service 21b5d1
        echo "Command: exiv2 -f -eX $image.eps"
Packit Service 21b5d1
        runTest exiv2 -f -eX "$image.eps"
Packit Service 21b5d1
        echo "Exit code: $?"
Packit Service 21b5d1
Packit Service 21b5d1
        diff -q $diffargs "$datadir/eps/$image.xmp" "$image.xmp"
Packit Service 21b5d1
Packit Service 21b5d1
        # Using "-ix" instead of "-iX" because the latter
Packit Service 21b5d1
        # executes writeMetadata() twice, making it hard to debug.
Packit Service 21b5d1
Packit Service 21b5d1
        copyTestFile "eps/eps-test-newxmp.xmp" "$image.exv"
Packit Service 21b5d1
Packit Service 21b5d1
        echo
Packit Service 21b5d1
        echo "Command: exiv2 -ix $image.eps"
Packit Service 21b5d1
        runTest exiv2 -ix "$image.eps"
Packit Service 21b5d1
        exitcode="$?"
Packit Service 21b5d1
        echo "Exit code: $exitcode"
Packit Service 21b5d1
Packit Service 21b5d1
        if [ "$exitcode" -ne 0 ] ; then
Packit Service 21b5d1
            continue
Packit Service 21b5d1
        fi
Packit Service 21b5d1
Packit Service 21b5d1
        # using perl instead of sed, because on some systems sed adds a line ending at EOF
Packit Service 21b5d1
        perl -pe "s,_Exiv2Version_,$exiv2version," < "$datadir/eps/$image.eps.newxmp" > "$image.eps.newxmp"
Packit Service 21b5d1
Packit Service 21b5d1
        if ! diff -q $diffargs "$image.eps.newxmp" "$image.eps" ; then
Packit Service 21b5d1
            continue
Packit Service 21b5d1
        fi
Packit Service 21b5d1
Packit Service 21b5d1
        echo
Packit Service 21b5d1
        echo "Command: (2) exiv2 -ix $image.eps"
Packit Service 21b5d1
        runTest exiv2 -ix "$image.eps"
Packit Service 21b5d1
        echo "Exit code: $?"
Packit Service 21b5d1
Packit Service 21b5d1
        diff -q $diffargs "$image.eps.newxmp" "$image.eps"
Packit Service 21b5d1
Packit Service 21b5d1
        # Ensure that "exiv2 -ex" won't merge metadata into the
Packit Service 21b5d1
        # *.exv file generated by a previous run of the test suite.
Packit Service 21b5d1
        rm -f "$image.exv"
Packit Service 21b5d1
Packit Service 21b5d1
        echo
Packit Service 21b5d1
        echo "Command: exiv2 -f -ex $image.eps"
Packit Service 21b5d1
        runTest exiv2 -f -ex "$image.eps"
Packit Service 21b5d1
        echo "Exit code: $?"
Packit Service 21b5d1
Packit Service 21b5d1
        diff -q $diffargs "$datadir/eps/eps-test-newxmp.exv" "$image.exv"
Packit Service 21b5d1
    done
Packit Service 21b5d1
Packit Service 21b5d1
) 3>&1 > "$testdir/eps-test.out" 2>&1
Packit Service 21b5d1
Packit Service 21b5d1
echo "."
Packit Service 21b5d1
Packit Service 21b5d1
# ----------------------------------------------------------------------
Packit Service 21b5d1
# Result
Packit Service 21b5d1
if ! diff -q $diffargs "$testdir/$datadir/eps/eps-test.out" "$testdir/eps-test.out" ; then
Packit Service 21b5d1
    diff  -u $diffargs "$testdir/$datadir/eps/eps-test.out" "$testdir/eps-test.out"
Packit Service 21b5d1
    exit 1
Packit Service 21b5d1
fi
Packit Service 21b5d1
echo "All testcases passed."
Packit Service 21b5d1
Packit Service 21b5d1
# That's all Folks!
Packit Service 21b5d1
##