1# $OpenBSD: regress.sh,v 1.9 2020/12/20 21:59:37 tb Exp $ 2# $FreeBSD: head/usr.bin/jot/tests/regress.sh 208728 2010-06-02 07:47:29Z brian $ 3 4JOT=${JOT-jot} 5echo "# JOT is ${JOT}" 6echo "# SRCDIR is ${SRCDIR}" 7 8REGRESSION_START(`pwd`) 9 10# A: test all 16 possibilities for reps, begin, end, s with omissions 11REGRESSION_TEST([[hhhh]], [[${JOT} 50 20 120 2]]) 12REGRESSION_TEST([[hhhd]], [[${JOT} 50 20 120 -]]) 13REGRESSION_TEST([[hhdh]], [[${JOT} 50 20 - 2]]) 14REGRESSION_TEST([[hhdd]], [[${JOT} 50 20 - -]]) 15REGRESSION_TEST([[hdhh]], [[${JOT} 50 - 120 2]]) 16REGRESSION_TEST([[hdhd]], [[${JOT} 50 - 120 -]]) 17REGRESSION_TEST([[hddh]], [[${JOT} 50 - - 2]]) 18REGRESSION_TEST([[hddd]], [[${JOT} 50 - - -]]) 19REGRESSION_TEST([[dhhh]], [[${JOT} - 20 120 2]]) 20REGRESSION_TEST([[dhhd]], [[${JOT} - 20 120 -]]) 21REGRESSION_TEST([[dhdh]], [[${JOT} - 20 - 2]]) 22REGRESSION_TEST([[dhdd]], [[${JOT} - 20 - -]]) 23REGRESSION_TEST([[ddhh]], [[${JOT} - - 120 2]]) 24REGRESSION_TEST([[ddhd]], [[${JOT} - - 120 -]]) 25REGRESSION_TEST([[dddh]], [[${JOT} - - - 2]]) 26REGRESSION_TEST([[dddd]], [[${JOT} - - - -]]) 27 28# B: same as A, but different numbers, only 12 because of 4 duplicates 29REGRESSION_TEST([[hhhh2]], [[${JOT} 30 20 160 2]]) 30REGRESSION_TEST([[hhhd2]], [[${JOT} 30 20 160 -]]) 31REGRESSION_TEST([[hhdh2]], [[${JOT} 30 20 - 2]]) 32REGRESSION_TEST([[hhdd2]], [[${JOT} 30 20 - -]]) 33REGRESSION_TEST([[hdhh2]], [[${JOT} 30 - 160 2]]) 34REGRESSION_TEST([[hdhd2]], [[${JOT} 30 - 160 -]]) 35REGRESSION_TEST([[hddh2]], [[${JOT} 30 - - 2]]) 36REGRESSION_TEST([[hddd2]], [[${JOT} 30 - - -]]) 37REGRESSION_TEST([[dhhh2]], [[${JOT} - 20 160 2]]) 38REGRESSION_TEST([[dhhd2]], [[${JOT} - 20 160 -]]) 39REGRESSION_TEST([[ddhh2]], [[${JOT} - - 160 2]]) 40REGRESSION_TEST([[ddhd2]], [[${JOT} - - 160 -]]) 41 42# C: reverse roles of begin and end in A. 43REGRESSION_TEST([[hhhh3]], [[${JOT} 50 120 20 -2]]) 44REGRESSION_TEST([[hhhd3]], [[${JOT} 50 120 20 -]]) 45REGRESSION_TEST([[hhdh3]], [[${JOT} 50 120 - -2]]) 46REGRESSION_TEST([[hhdd3]], [[${JOT} 50 120 - -]]) 47REGRESSION_TEST([[hdhh3]], [[${JOT} 50 - 20 -2]]) 48REGRESSION_TEST([[hdhd3]], [[${JOT} 50 - 20 -]]) 49REGRESSION_TEST([[dhhh3]], [[${JOT} - 120 20 -2]]) 50REGRESSION_TEST([[dhhd3]], [[${JOT} - 120 20 -]]) 51REGRESSION_TEST([[dhdh3]], [[${JOT} - 120 - -2]]) 52REGRESSION_TEST([[dhdd3]], [[${JOT} - 120 - -]]) 53REGRESSION_TEST([[ddhh3]], [[${JOT} - - 20 -2]]) 54REGRESSION_TEST([[ddhd3]], [[${JOT} - - 20 -]]) 55 56# D: reverse roles of begin and end in B. 57REGRESSION_TEST([[hhhh4]], [[${JOT} 30 160 20 -2]]) 58REGRESSION_TEST([[hhhd4]], [[${JOT} 30 160 20 -]]) 59REGRESSION_TEST([[hhdh4]], [[${JOT} 30 160 - -2]]) 60REGRESSION_TEST([[hhdd4]], [[${JOT} 30 160 - -]]) 61REGRESSION_TEST([[hdhh4]], [[${JOT} 30 - 20 -2]]) 62REGRESSION_TEST([[hdhd4]], [[${JOT} 30 - 20 -]]) 63REGRESSION_TEST([[dhhh4]], [[${JOT} - 160 20 -2]]) 64REGRESSION_TEST([[dhhd4]], [[${JOT} - 160 20 -]]) 65 66# E: what happens if begin and end are equal? 67REGRESSION_TEST([[dbbd]], [[${JOT} - 10 10 -]]) 68REGRESSION_TEST([[hbbd]], [[${JOT} 15 10 10 -]]) 69REGRESSION_TEST([[dbbh]], [[${JOT} - 10 10 2]]) 70REGRESSION_TEST([[hbbh]], [[${JOT} 15 10 10 2]]) 71 72# F: random output 73# rand1 and rand2 test coverage (10000 is way too big: 200 should be enough) 74REGRESSION_TEST([[rand1]], [[${JOT} -r 10000 0 9 | sort -u]]) 75REGRESSION_TEST([[rand2]], [[${JOT} -r 10000 9 0 | sort -u]]) 76# same thing again, but divide by 10 77REGRESSION_TEST([[rand1p1]], [[${JOT} -p 1 -r 10000 0 0.9 | sort -u]]) 78REGRESSION_TEST([[rand2p1]], [[${JOT} -p 1 -r 10000 0.9 0 | sort -u]]) 79# rdhhh and rhdhh test if begin and ender are set to the default with jot -r 80REGRESSION_TEST([[rdhhh]], [[${JOT} -r 100 - 10 2 2>/dev/null | sort -n | head -1]]) 81REGRESSION_TEST([[rhdhh]], [[${JOT} -r 100 90 - 2 2>/dev/null | sort -n | tail -1]]) 82# test variant of old manpage example, as it exercises the 'use_unif = 0' path 83REGRESSION_TEST([[nonunif]], [[${JOT} -p0 -r 10000 0.5 9.5 | sort -u]]) 84 85# G: Examples from the FreeBSD manual 86REGRESSION_TEST([[n21]], [[${JOT} 21 -1 1.00]]) 87REGRESSION_TEST([[ascii]], [[${JOT} -c 128 0]]) 88REGRESSION_TEST([[xaa]], [[${JOT} -w xa%c 26 a]]) 89REGRESSION_TEST([[yes]], [[${JOT} -b yes 10]]) 90REGRESSION_TEST([[ed]], [[${JOT} -w %ds/old/new/ 30 2 - 5]]) 91REGRESSION_TEST([[stutter]], [[${JOT} - 9 0 -.5]]) 92REGRESSION_TEST([[stutter2]], [[${JOT} -w %d - 9.5 0 -.5]]) 93REGRESSION_TEST([[block]], [[${JOT} -b x 512]]) 94REGRESSION_TEST([[tabs]], [[${JOT} -s, - 10 132 4]]) 95REGRESSION_TEST([[grep]], [[${JOT} -s "" -b . 80]]) 96 97# H: various format strings 98REGRESSION_TEST([[wf]], [[${JOT} -w "a%.1fb" 10]]) 99REGRESSION_TEST([[we]], [[${JOT} -w "a%eb" 10]]) 100REGRESSION_TEST([[wwe]], [[${JOT} -w "a%-15eb" 10]]) 101REGRESSION_TEST([[wg]], [[${JOT} -w "a%20gb" 10]]) 102REGRESSION_TEST([[wc]], [[${JOT} -w "a%cb" 10 33 43]]) 103REGRESSION_TEST([[wgd]], [[${JOT} -w "a%gb" 10 .2]]) 104REGRESSION_TEST([[wu]], [[${JOT} -w "a%ub" 10]]) 105REGRESSION_TEST([[wUn]], [[${JOT} -w "a%Ub" 10 1]]) 106REGRESSION_TEST([[wlu]], [[${JOT} -w "a%lub" 10]]) 107REGRESSION_TEST([[wo]], [[${JOT} -w "a%ob" 10]]) 108REGRESSION_TEST([[wOn]], [[${JOT} -w "a%Ob" 10 1]]) 109REGRESSION_TEST([[wlo]], [[${JOT} -w "a%lob" 10]]) 110REGRESSION_TEST([[wx]], [[${JOT} -w "a%xb" 10]]) 111REGRESSION_TEST([[wX1]], [[${JOT} -w "a%Xb" 10]]) 112REGRESSION_TEST([[wXl]], [[${JOT} -w "a%Xb" 10 2147483648]]) 113REGRESSION_TEST([[wdl]], [[${JOT} -w "a%db" 10 2147483648 2>/dev/null]]) 114REGRESSION_TEST([[wxn]], [[${JOT} -w "a%xb" 10 -5 2>/dev/null]]) 115REGRESSION_TEST([[wdn]], [[${JOT} -w "a%db" 10 -5]]) 116REGRESSION_TEST([[wDnn]], [[${JOT} -w "a%Db" 10 -5 4]]) 117REGRESSION_TEST([[wldn]], [[${JOT} -w "a%ldb" 10 -5]]) 118REGRESSION_TEST([[wp1]], [[${JOT} -w "%%%d%%%%" 10]]) 119REGRESSION_TEST([[wp2]], [[${JOT} -w "%d%%d%%" 10]]) 120REGRESSION_TEST([[wp3]], [[${JOT} -w "a%%A%%%d%%B%%b" 10]]) 121REGRESSION_TEST([[wp4]], [[${JOT} -w "%%d%d%%d%%" 10]]) 122REGRESSION_TEST([[wp5]], [[${JOT} -w ftp://www.example.com/pub/uploaded%%20files/disk%03d.iso 10]]) 123REGRESSION_TEST([[wp6]], [[${JOT} -w "%d%" 10]]) 124REGRESSION_TEST([[x]], [[${JOT} -w "%X" -s , 100 1 200]]) 125 126# I: Examples from the OpenBSD manual 127REGRESSION_TEST([[man1]], [[${JOT} 6 1 10 0.5]]) 128REGRESSION_TEST([[man2]], [[${JOT} -p 1 6 1 10 0.5]]) 129REGRESSION_TEST([[man3]], [[${JOT} -p 0 6 .9999999999 10 0.5]]) 130REGRESSION_TEST([[man4]], [[${JOT} -w %d 6 1 10 0.5]]) 131REGRESSION_TEST([[man5]], [[${JOT} 21 -1 1.00]]) 132REGRESSION_TEST([[man6]], [[${JOT} -w xa%c 26 a]]) 133REGRESSION_TEST([[man7]], [[${JOT} -w %ds/old/new/ 30 2 - 5]]) 134REGRESSION_TEST([[man8]], [[${JOT} -b x 512]]) 135REGRESSION_TEST([[man9]], [[${JOT} -s, - 10 132 4]]) 136REGRESSION_TEST([[man10]], [[${JOT} -s "" -b. 80]]) 137 138# J: Misc tests 139REGRESSION_TEST([[nb1]], [[{ ${JOT} -n -b1 1 && echo; }]]) 140REGRESSION_TEST([[noargs]], [[${JOT}]]) 141 142REGRESSION_END() 143