comparison rts.tests @ 0:2cb46628feec

from cdb-0.75 per http://cr.yp.to/cdb.html, retrieved 2025-01-03, contents appear to have been create on 2000-02-19
author Henry S. Thompson <ht@inf.ed.ac.uk>
date Wed, 29 Jan 2025 10:50:34 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:2cb46628feec
1 # Requirements:
2 # You have softlimit in your path.
3 # XFSZ is signal 25.
4 #
5 # Some features not tested here:
6 # cdbmake traps 4GB overflows.
7
8
9 umask 022
10
11 rm -rf rts-tmp
12 mkdir rts-tmp
13 cd rts-tmp
14
15
16 echo '--- cdbmake handles simple example'
17 echo '+3,5:one->Hello
18 +3,7:two->Goodbye
19 ' | cdbmake test.cdb test.tmp
20 echo $?
21
22 echo '--- cdbmake-12 handles simple example'
23 echo '
24 one Hello
25 # comment line
26 two Goodbye
27 ' | cdbmake-12 12.cdb 12.tmp
28 echo $?
29
30 echo '--- cdbmake-sv handles simple example'
31 echo '
32 # Network services, Internet style
33 echo 7/tcp
34 echo 7/udp
35 discard 9/tcp sink null
36 discard 9/udp sink null
37 systat 11/tcp users #Active Users
38 systat 11/udp users #Active Users
39 ' | cdbmake-sv sv.cdb sv.tmp
40 echo $?
41
42 echo '--- cdbdump handles simple examples'
43 cdbdump < test.cdb
44 echo $?
45 cdbdump < 12.cdb
46 echo $?
47 cdbdump < sv.cdb
48 echo $?
49
50 echo '--- cdbtest handles simple examples'
51 cdbtest < test.cdb
52 echo $?
53 cdbtest < 12.cdb
54 echo $?
55 cdbtest < sv.cdb
56 echo $?
57
58 echo '--- cdbstats handles simple examples'
59 cdbstats < test.cdb
60 echo $?
61 cdbstats < 12.cdb
62 echo $?
63 cdbstats < sv.cdb
64 echo $?
65
66 echo '--- cdbget retrieves data successfully'
67 cdbget one < test.cdb
68 echo '
69 '$?
70 cdbget two < test.cdb
71 echo '
72 '$?
73 for i in @7 echo @9 discard sink null @11 systat users
74 do
75 cdbget $i/tcp < sv.cdb
76 echo '
77 '$?
78 cdbget $i/udp < sv.cdb
79 echo '
80 '$?
81 done
82
83 echo '--- cdbget exits 100 on nonexistent data'
84 cdbget three < test.cdb
85 echo $?
86 cdbget '#Active' < sv.cdb
87 echo $?
88
89
90 echo '--- cdbmake handles repeated keys'
91 echo '+3,5:one->Hello
92 +3,7:one->Goodbye
93 +3,7:one->Another
94 ' | cdbmake rep.cdb rep.tmp
95 echo $?
96 cdbdump < rep.cdb
97 echo $?
98
99 echo '--- cdbget handles repeated keys'
100 cdbget one < rep.cdb
101 echo '
102 '$?
103 cdbget one 0 < rep.cdb
104 echo '
105 '$?
106 cdbget one 1 < rep.cdb
107 echo '
108 '$?
109 cdbget one 2 < rep.cdb
110 echo '
111 '$?
112 cdbget one 3 < rep.cdb
113 echo '
114 '$?
115 cdbget one 4 < rep.cdb
116 echo '
117 '$?
118
119 echo '--- cdbmake handles long keys and data'
120 echo '+320,320:ba483b3442e75cace82def4b5df25bfca887b41687537c21dc4b82cb4c36315e2f6a0661d1af2e05e686c4c595c16561d8c1b3fbee8a6b99c54b3d10d61948445298e97e971f85a600c88164d6b0b09
121 b5169a54910232db0a56938de61256721667bddc1c0a2b14f5d063ab586a87a957e87f704acb7246c5e8c25becef713a365efef79bb1f406fecee88f3261f68e239c5903e3145961eb0fbc538ff506a
122 ->152e113d5deec3638ead782b93e1b9666d265feb5aebc840e79aa69e2cfc1a2ce4b3254b79fa73c338d22a75e67cfed4cd17b92c405e204a48f21c31cdcf7da46312dc80debfbdaf6dc39d74694a711
123 6d170c5fde1a81806847cf71732c7f3217a38c6234235951af7b7c1d32e62d480d7c82a63a9d94291d92767ed97dd6a6809d1eb856ce23eda20268cb53fda31c016a19fc20e80aec3bd594a3eb82a5a
124
125 ' | cdbmake test.cdb test.tmp
126 echo $?
127
128 echo '--- cdbdump handles long keys and data'
129 cdbdump < test.cdb
130 echo $?
131
132 echo '--- cdbtest handles long keys and data'
133 cdbtest < test.cdb
134 echo $?
135
136 echo '--- cdbstats handles long keys and data'
137 cdbstats < test.cdb
138 echo $?
139
140 echo '--- cdbget handles long keys and data'
141 cdbget 'ba483b3442e75cace82def4b5df25bfca887b41687537c21dc4b82cb4c36315e2f6a0661d1af2e05e686c4c595c16561d8c1b3fbee8a6b99c54b3d10d61948445298e97e971f85a600c88164d6b0b09
142 b5169a54910232db0a56938de61256721667bddc1c0a2b14f5d063ab586a87a957e87f704acb7246c5e8c25becef713a365efef79bb1f406fecee88f3261f68e239c5903e3145961eb0fbc538ff506a
143 ' < test.cdb
144 echo '
145 '$?
146
147 echo '--- cdbmake handles unwritable tmp'
148 ln -s loop loop
149 echo '' | cdbmake test.cdb loop
150 echo $?
151
152 echo '--- cdbmake handles unmovable cdb'
153 echo '' | cdbmake loop/test.cdb test.tmp
154 echo $?
155
156 echo '--- cdbmake handles nomem'
157 csh -cf 'repeat 5000 echo "+3,5:one->Hello"' \
158 | softlimit -d 50000 cdbmake test.cdb test.tmp
159 echo $?
160
161 echo '--- cdbmake handles full disk'
162 (
163 trap '' 25
164 echo '' | softlimit -f 2047 cdbmake test.cdb test.tmp
165 echo $?
166 )
167
168 echo '--- cdbmake handles absurd klen'
169 echo '+4294967210' | cdbmake test.cdb test.tmp
170 echo $?
171
172 echo '--- cdbget handles empty file'
173 cdbget foo </dev/null
174 echo $?
175
176
177 echo '--- cdbdump and cdbmake handle random.cdb'
178 cdbdump < ../random.cdb | cdbmake test.cdb test.tmp
179 echo $?
180 cmp ../random.cdb test.cdb
181
182 echo '--- cdbtest handles random.cdb'
183 cdbtest < ../random.cdb
184 echo $?
185
186 echo '--- cdbstats handles random.cdb'
187 cdbstats < ../random.cdb
188 echo $?
189
190
191 echo '--- testzero works'
192 testzero 5 > test.cdb
193 echo $?
194 cdbtest < test.cdb
195 echo $?
196
197 echo '--- testzero can build a database very close to 4GB'
198 testzero 65507 > /dev/null
199 echo $?
200
201 echo '--- testzero complains if hash table passes 4GB'
202 testzero 65508 > /dev/null
203 echo $?
204
205 echo '--- testzero complains if records pass 4GB'
206 testzero 66000 > /dev/null
207 echo $?
208
209
210 exit 0