NOTE regression tests for the cat command UNIT cat --regress TEST basics index=0 files= for data in $( for ((i = 0; i <= 2#11111; i++ )) do printf $'%05..2u\n' $i done | sed -e 's/1/a/' -e 's/1/b/' -e 's/1/c/' -e 's/1/d/' -e 's/1/e/' -e 's/./&n/g' -e 's/0//g' -e 's/n$//' ) do d=d$(printf $'%05..2u' $index) ((index++)) files="$files $d" DATA $d "${data//n/$'\n'}" done options=( show-ends show-nonprinting number-nonblank squeeze-blank ) # generate tests for all option and input file combinations integer b i m=${#options[@]} for (( b=0; b<(1<<m); b++ )) do o= for (( i=0; i<m; i++ )) do if (( b & (1<<i) )) then o="$o --${options[i]}" fi done for f in $files do EXEC $o $f done done TEST '-v' DO getconf UNIVERSE = att DATA i $'a\x{89}b\x{c9}c\tdIe' DATA j -n X EXEC -v i EXEC -v j