1#!/bin/sh - 2# 3# Copyright (c) 1992 The Regents of the University of California. 4# All rights reserved. 5# 6# %sccs.include.redist.sh% 7# 8# @(#)run.test 5.1 (Berkeley) 08/26/92 9# 10 11# db regression tests 12 13main() 14{ 15 DICT=/usr/share/dict/words 16 TMP1=t1 17 TMP2=t2 18 TMP3=t3 19 20 test1 21 test2 22 test3 23 test4 24 rm -f $TMP1 $TMP2 $TMP3 25} 26 27# Take the first hundred entries in the dictionary, and make them 28# be key/data pairs. 29test1() 30{ 31 printf "Test1: btree, hash: small key, small data pairs\n" 32 for i in `sed 200q $DICT`; do 33 printf "%s\n" $i 34 done > $TMP1 35 for type in btree hash; do 36 rm -f $TMP2 $TMP3 37 for i in `sed 200q $DICT`; do 38 printf "p\nk%s\nd%s\ng\nk%s\n" $i $i $i 39 done > $TMP2 40 ./dbtest -o $TMP3 $type $TMP2 41 if (cmp -s $TMP1 $TMP3) ; then 42 else 43 printf "test1: type %s: failed\n" $type 44 exit 1 45 fi 46 done 47 printf "Test1: recno: small key, small data pairs\n" 48 rm -f $TMP2 $TMP3 49 sed 200q $DICT | 50 awk '{ 51 ++i; 52 printf("p\nk%d\nd%s\ng\nk%d\n", i, $0, i); 53 }' > $TMP2 54 ./dbtest -o $TMP3 recno $TMP2 55 if (cmp -s $TMP1 $TMP3) ; then 56 else 57 printf "test1: type recno: failed\n" 58 exit 1 59 fi 60} 61 62# Take the first hundred entries in the dictionary, and give them 63# each a medium size data entry. 64test2() 65{ 66 printf "Test2: btree, hash: small key, medium data pairs\n" 67 mdata=abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz 68 echo $mdata | 69 awk '{ for (i = 1; i < 201; ++i) print $0 }' > $TMP1 70 for type in hash btree; do 71 rm -f $TMP2 $TMP3 72 for i in `sed 200q $DICT`; do 73 printf "p\nk%s\nd%s\ng\nk%s\n" $i $mdata $i 74 done > $TMP2 75 ./dbtest -o $TMP3 $type $TMP2 76 if (cmp -s $TMP1 $TMP3) ; then 77 else 78 printf "test2: type %s: failed\n" $type 79 exit 1 80 fi 81 done 82 printf "Test2: recno: small key, medium data pairs\n" 83 rm -f $TMP2 $TMP3 84 echo $mdata | 85 awk '{ for (i = 1; i < 201; ++i) 86 printf("p\nk%d\nd%s\ng\nk%d\n", i, $0, i); 87 }' > $TMP2 88 ./dbtest -o $TMP3 recno $TMP2 89 if (cmp -s $TMP1 $TMP3) ; then 90 else 91 printf "test2: type recno: failed\n" 92 exit 1 93 fi 94} 95 96# Insert the programs in /bin with their paths as their keys. 97test3() 98{ 99 printf "Test3: btree, hash: small key, big data pairs\n" 100 rm -f $TMP1 101 (find /bin -type f -print | xargs cat) > $TMP1 102 for type in hash btree; do 103 rm -f $TMP2 $TMP3 104 for i in `find /bin -type f -print`; do 105 printf "p\nk%s\nD%s\ng\nk%s\n" $i $i $i 106 done > $TMP2 107 ./dbtest -o $TMP3 $type $TMP2 108 if (cmp -s $TMP1 $TMP3) ; then 109 else 110 printf "test2: type %s: failed\n" $type 111 exit 1 112 fi 113 done 114 printf "Test3: recno: big data pairs\n" 115 rm -f $TMP2 $TMP3 116 find /bin -type f -print | 117 awk '{ 118 ++i; 119 printf("p\nk%d\nD%s\ng\nk%d\n", i, $0, i); 120 }' > $TMP2 121 ./dbtest -o $TMP3 recno $TMP2 122 if (cmp -s $TMP1 $TMP3) ; then 123 else 124 printf "test3: type recno: failed\n" 125 exit 1 126 fi 127} 128 129# Do random recno entries. 130test4() 131{ 132 printf "Test4: recno: random entries\n" 133 echo "abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg" | 134 awk '{ 135 for (i = 37; i <= 37 + 88 * 17; i += 17) 136 printf("input key %d: %s\n", i, $0); 137 for (i = 1; i <= 15; ++i) 138 printf("input key %d: %s\n", i, $0); 139 for (i = 19234; i <= 19234 + 61 * 27; i += 27) 140 printf("input key %d: %s\n", i, $0); 141 exit 142 }' > $TMP1 143 rm -f TMP2 $TMP3 144 cat $TMP1 | awk 'BEGIN { 145 i = 37; 146 incr = 17; 147 } 148 { 149 printf("p\nk%d\nd%s\n", i, $0); 150 if (i == 19234 + 61 * 27) 151 exit; 152 if (i == 37 + 88 * 17) { 153 i = 1; 154 incr = 1; 155 } else if (i == 15) { 156 i = 19234; 157 incr = 27; 158 } else 159 i += incr; 160 } 161 END { 162 for (i = 37; i <= 37 + 88 * 17; i += 17) 163 printf("g\nk%d\n", i); 164 for (i = 1; i <= 15; ++i) 165 printf("g\nk%d\n", i); 166 for (i = 19234; i <= 19234 + 61 * 27; i += 27) 167 printf("g\nk%d\n", i); 168 }' > $TMP2 169 ./dbtest -o $TMP3 recno $TMP2 170 if (cmp -s $TMP1 $TMP3) ; then 171 else 172 printf "test4: type recno: failed\n" 173 exit 1 174 fi 175} 176 177main 178