#! /bin/bash # This script tests: ppmshift # Also requires: pgmtoppm echo "Test 1. Should print: 3705777303 101484" ppmshift -seed=1 10 testimg.ppm | cksum echo "Test 2. Should print: 202790723 685" ppmshift -seed=1 1 testgrid.pbm | cksum echo "Test 3. Should print: 0 0 : 0" ppmshift -seed=1 0 testimg.ppm | cmp -s - testimg.ppm echo ${PIPESTATUS[@]} ":" $? tmpdir=${tmpdir:-/tmp} test0_ppm=${tmpdir}/test0.ppm test14_ppm=${tmpdir}/test14.ppm pgmtoppm < maze.pbm > ${test0_ppm} echo "Test 4. Should print: 0 0 : 0" ppmshift -seed=2 0 maze.pbm | cmp -s - ${test0_ppm} echo ${PIPESTATUS[@]} ":" $? ppmshift -seed=2 14 maze.pbm > ${test14_ppm} for i in 1 15 16 20 1000 do echo "Test 5. ("$i") Should print: 1 twice" ppmshift -seed=2 $i maze.pbm | cmp -s - ${test0_ppm} echo $? ppmshift -seed=2 $i maze.pbm | cmp -s - ${test14_ppm} echo $? done # In Test 5 the image files are not supposed to match. # When cmp finds a difference, it may terminate and stop reading input from # the pipe at that point. This may cause a "broken pipe" exception; however # this does not always happen. The broken pipe shows up as a non-zero value # for ${PIPESTATUS[0]}. rm ${test0_ppm} ${test14_ppm}