#!/bin/bash # Verify that bad command line arguments are rejected. # # Note that marcile45.c and earlier accepted width and height up to 2048, # while marcille46.c and later accepted width and height up to 2047. # For compatibility, we don't test sizes exactly equal to 2048. set -euo pipefail if [[ $# != 1 ]]; then echo "$0 {program}" exit 1 fi PROG=$1 function die { echo "$1: $2" exit 1 } "./$PROG" 1 256 > /dev/null && die "$LINENO" "width check fail" "./$PROG" 35 256 > /dev/null && die "$LINENO" "width check fail" "./$PROG" 2049 256 > /dev/null && die "$LINENO" "width check fail" "./$PROG" 256 1 > /dev/null && die "$LINENO" "height check fail" "./$PROG" 256 11 > /dev/null && die "$LINENO" "height check fail" "./$PROG" 256 2049 > /dev/null && die "$LINENO" "height check fail" "./$PROG" 36 256 > /dev/null || die "$LINENO" "unexpected reject" "./$PROG" 2047 256 > /dev/null || die "$LINENO" "unexpected reject" "./$PROG" 256 12 > /dev/null || die "$LINENO" "unexpected reject" "./$PROG" 256 2047 > /dev/null || die "$LINENO" "unexpected reject" "./$PROG" 36 12 > /dev/null || die "$LINENO" "unexpected reject" "./$PROG" 2047 2047 > /dev/null || die "$LINENO" "unexpected reject" exit 0