#! /bin/bash # This script tests: pnmcrop # Also requires: pnmpad pnmmargin pamcut tmpdir=${tmpdir:-/tmp} test_pbm=${tmpdir}/test.pbm test_ppm=${tmpdir}/test.ppm pnmmargin -white 7 testgrid.pbm | pnmpad -black -bottom=2 > ${test_pbm} pnmmargin -white 6 testimg.ppm | pnmpad -black -right=11 > ${test_ppm} #Test 1 echo Test 1 for input_file in ${test_pbm} ${test_ppm} do echo `basename ${input_file}` for option in "" "-white" "-black" "-sides" \ "-top" "-bottom" "-left" "-right" "-top -bottom" \ "-bottom -bg-corner=bottomright" \ "-right -bg-corner=bottomright" \ "-bg-color=white" "-bg-color=black" "-bg-color=red" do echo ${option} pnmcrop -reportfull ${option} ${input_file} || echo fail done done #Test 2 echo Test 2 for input_file in ${test_pbm} ${test_ppm} do echo `basename ${input_file}` for option in "" "-white" "-top" do echo ${option} # Normal crop operation pnmcrop ${option} ${input_file} | cksum # Compute edge extents with pnmcrop; let pamcut do the actual cropping pamcut ${input_file} `pnmcrop -reportsize ${option} ${input_file} | \ awk 'NF==6 && NR==1 && \ $1<=0 && $2<=0 && $3<=0 && $4<=0 && $5>=0 && $6>=0 \ { printf("-cropleft=%d -cropright=%d ", -$1, -$2); printf("-croptop=%d -cropbottom=%d", -$3, -$4) }' ` | cksum done done rm ${test_pbm} ${test_ppm} # Test 3 echo "Test Invalid" test_out=${tmpdir}/test_out echo 1>&2 echo "Invalid command-line argument combinations." 1>&2 echo "Error messages should appear below the line." 1>&2 echo "-----------------------------------------------------------" 1>&2 for option in "-reportfull -reportsize" \ "-reportfull -borderfile=testgrid.pbm" \ "-reportsize -borderfile=testgrid.pbm" \ "-black -white" \ "-black -sides" \ "-white -bg-color=red" \ "-white -bg-corner=topleft" \ "-white -bg-corner=top" \ "-blank-image=pasturize" \ "-bg-color=black -closeness=-1" \ "-bg-color=black -closeness=101" do echo ${option} pnmcrop -reportfull ${option} testgrid.pbm > ${test_out} || \ echo -n "Expected failure: " ${option}; test -s ${test_out}; echo " "$? rm ${test_out} done