You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.7 KiB
Bash

#!/usr/bin/env bash
# Test driver for image file i/o
source ./functions.source
( cd "$testdir"
errors=0
test_files="table.jpg smiley2.jpg ext.dat"
echo
printf "file io tests"
for i in $test_files; do ioTest $i; done
printf "\n---------------------------------------------------------\n"
if [ $errors -eq 0 ]; then
echo 'All test cases passed'
else
echo $errors 'test case(s) failed!'
fi
)
# these function will be added to functions_source
startHttpServer() {
cd "${testdir}/.." # testdir is the tmp output directory
if [ ! -z $EXIV2_PORT ]; then port=$EXIV2_PORT ; else port=1276; fi
url=http://0.0.0.0:$port
jobs=$(jobs | wc -l)
python3 -m http.server $port & # start a background local HTTP server in the "real" test directory
sleep 2 # wait for it to init or die!
if [ $(jobs | wc -l) != $jobs ]; then
exiv2_httpServer=$!
else
>&2 printf "*** startHttpServer failed to start on port $port ***\n"
fi
}
closeHttpServer() {
if [ ! -z $exiv2_httpServer ]; then
kill $exiv2_httpServer # kill the server
fi
}
# Test http I/O
startHttpServer
if [ ! -z $exiv2_httpServer ]; then
( cd "${testdir}"
>&2 printf "*** HTTP tests begin\n"
cd "$testdir"
test_files="table.jpg Reagan.tiff exiv2-bug922a.jpg"
for i in $test_files; do
runTest exiv2 -pa -g City -g DateTime $url/data/$i
done
>&2 printf "*** HTTP tests end\n"
) | tr -d '\r' | sed 's/[ \t]+$//' > $results
reportTest
fi
closeHttpServer
# That's all Folks!
##