summaryrefslogtreecommitdiff
path: root/db/test/TESTS
blob: a585bdddcde5acf30f57f35eef4961c94bc94eed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
# $Id: TESTS,v 11.34 2000/11/06 19:31:56 sue Exp $

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Access method tests
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
test001		Small keys/data
			Put/get per key
			Dump file
			Close, reopen
			Dump file

test002		Small keys/medium data
			Put/get per key
			Dump file
			Close, reopen
			Dump file

test003		Small keys/large data
			Put/get per key
			Dump file
			Close, reopen
			Dump file

test004		Small keys/medium data
			Put/get per key
			Sequential (cursor) get/delete

test005		Small keys/medium data
			Put/get per key
			Close, reopen
			Sequential (cursor) get/delete

test006		Small keys/medium data
			Put/get per key
			Keyed delete and verify

test007		Small keys/medium data
			Put/get per key
			Close, reopen
			Keyed delete

test008		Small keys/large data
			Put/get per key
			Loop through keys by steps (which change)
			    ... delete each key at step
			    ... add each key back
			    ... change step
			Confirm that overflow pages are getting reused

test009		Small keys/large data
			Same as test008; close and reopen database

test010		Duplicate test
			Small key/data pairs.

test011		Duplicate test
			Small key/data pairs.
			Test DB_KEYFIRST, DB_KEYLAST, DB_BEFORE and DB_AFTER.
			To test off-page duplicates, run with small pagesize.

test012		Large keys/small data
			Same as test003 except use big keys (source files and
			executables) and small data (the file/executable names).

test013		Partial put test
			Overwrite entire records using partial puts.  Make sure
			that NOOVERWRITE flag works.

test014		Exercise partial puts on short data
			Run 5 combinations of numbers of characters to replace,
			    and number of times to increase the size by.

test015		Partial put test
			Partial put test where the key does not initially exist.

test016		Partial put test
			Partial put where the datum gets shorter as a result of
			the put.

test017		Basic offpage duplicate test.

test018		Offpage duplicate test
			Key_{first,last,before,after} offpage duplicates.

test019		Partial get test.

test020		In-Memory database tests.

test021		Btree range tests.

test022		Test of DB->getbyteswapped().

test023		Duplicate test
			Exercise deletes and cursor operations within a
			duplicate set.

test024		Record number retrieval test.

test025		DB_APPEND flag test.

test026		Small keys/medium data w/duplicates
			Put/get per key.
			Loop through keys -- delete each key
			    ... test that cursors delete duplicates correctly

test027		Off-page duplicate test
			Test026 with parameters to force off-page duplicates.

test028		Cursor delete test
			Test put operations after deleting through a cursor.

test029		Record renumbering

test030		DB_NEXT_DUP functionality

test031		Duplicate sorting functionality
		Make sure DB_NODUPDATA works.

test032		DB_GET_BOTH

test033		DB_GET_BOTH without comparison function

test034		Test032 with off-page duplicates

test035		Test033 with off-page duplicates

test036		Test KEYFIRST and KEYLAST when the key doesn't exist

test037		Test DB_RMW

test038		DB_GET_BOTH on deleted items

test039		DB_GET_BOTH  on deleted items without comparison function

test040		Test038 with off-page duplicates

test041		Test039 with off-page duplicates

test042		Concurrent Data Store test

test043		Recno renumbering and implicit creation test

test044		Small system integration tests
			Test proper functioning of the checkpoint daemon,
			recovery, transactions, etc.

test045		Small random tester
			Runs a number of random add/delete/retrieve operations.
			Tests both successful conditions and error conditions.

test046		Overwrite test of small/big key/data with cursor checks.

test047		Cursor get test with SET_RANGE option.

test048		Cursor stability across Btree splits.

test049		Cursor operations on unitialized cursors.

test050		Cursor overwrite test for Recno.

test051		Fixed-length record Recno test.

test052		Renumbering record Recno test.

test053		DB_REVSPLITOFF flag test

test054		Cursor maintenance during key/data deletion.

test054		Basic cursor operations.

test055		Cursor maintenance during key deletes.

test056		Cursor maintenance during deletes.

test057		Cursor maintenance during key deletes.

test058         Verify that deleting and reading duplicates results in
		correct ordering.

test059		Cursor ops work with a partial length of 0.

test060		Test of the DB_EXCL flag to DB->open().

test061		Test of txn abort and commit for in-memory databases.

test062		Test of partial puts (using DB_CURRENT) onto duplicate pages.

test063		Test of the DB_RDONLY flag to DB->open

test064		Test of DB->get_type

test065		Test of DB->stat(DB_RECORDCOUNT)

test066		Test of cursor overwrites of DB_CURRENT w/ duplicates.

test067		Test of DB_CURRENT partial puts onto almost empty duplicate
		pages, with and without DB_DUP_SORT.

test068		Test of DB_BEFORE and DB_AFTER with partial puts.

test069		Test of DB_CURRENT partial puts without duplicates--
		test067 w/ small ndups.

test070		Test of DB_CONSUME (Four consumers, 1000 items.)

test071		Test of DB_CONSUME (One consumer, 10000 items.)

test072		Cursor stability test when dups are moved off-page

test073		Test of cursor stability on duplicate pages.

test074		Test of DB_NEXT_NODUP.

test075		Test of DB->rename().
		(formerly test of DB_TRUNCATE cached page invalidation [#1487])

test076		Test creation of many small databases in a single environment.
		[#1528].

test077		Test of DB_GET_RECNO [#1206].

test078		Test of DBC->c_count().

test079		Test of deletes in large trees.  (test006 w/ sm. pagesize).

test080		Test of DB->remove()

test081		Test off-page duplicates and overflow pages together with
		very large keys (key/data as file contents).

test082		Test of DB_PREV_NODUP (uses test074).

test083		Test of DB->key_range.

test084		Sanity test of large (64K) pages.

test085		Test of cursor behavior when a cursor is pointing to a deleted
		btree key which then has duplicates added. [#2473]

test086		Test of cursor stability across btree splits/rsplits with
		subtransaction aborts (a variant of test048).  [#2373]


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Cursor Join.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
jointest	Test duplicate assisted joins.
			Executes 1, 2, 3 and 4-way joins with differing
			index orders and selectivity.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Deadlock detection.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
dead001         Use two different configurations to test deadlock
		detection among a variable number of processes.  One
		configuration has the processes deadlocked in a ring.
		The other has the processes all deadlocked on a single
		resource.

dead002         Same test as dead001, but use "detect on every collision"
		instead of separate deadlock detector.

dead003         Same test as dead002, but explicitly specify oldest or
		youngest.  Verify the correct lock was aborted/granted.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Lock tests
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
lock001		Basic lock test, gets/puts.  Contention without waiting.

lock002		Multi-process lock tests.

lock003		Multiprocess random lock test.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Logging test
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
log001		Read/write log records.

log002          Tests multiple logs
		Log truncation
		lsn comparison and file functionality.

log003		Verify that log_flush is flushing records correctly.

log004		Prev on log when beginning of log has been truncated.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Mpool test
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
memp001		Randomly updates pages.

memp002         Tests multiple processes accessing and modifying the same
		files.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Recovery
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
recd001         Per-operation recovery tests for non-duplicate, non-split
		messages.  Makes sure that we exercise redo, undo, and
		do-nothing condition.  Any test that appears with the
		message (change state) indicates that we've already run
		the particular test, but we are running it again so that
		we can change the state of the data base to prepare for
		the next test (this applies to all other recovery tests
		as well).

recd002         Split recovery tests.  For every known split log message,
		makes sure that we exercise redo, undo, and do-nothing
		condition.

recd003         Duplicate recovery tests.  For every known duplicate log
		message, makes sure that we exercise redo, undo, and
		do-nothing condition.

recd004		Big key test where big key gets elevated to internal page.

recd005		Verify reuse of file ids works on catastrophic recovery.

recd006		Nested transactions.

recd007		File create/delete tests.

recd008		Test deeply nested transactions.

recd009		Verify record numbering across split/reverse splits
		and recovery.

recd010		Verify duplicates across split/reverse splits
		and recovery.

recd011		Verify that recovery to a specific timestamp works.

recd012		Test of log file ID management. [#2288]

recd013		Test of cursor adjustment on child transaction aborts. [#2373]

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Subdatabase tests
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
subdb001	Tests mixing db and subdb operations
			Create a db, add data, try to create a subdb.
			Test naming db and subdb with a leading - for
			    correct parsing
			Existence check -- test use of -excl with subdbs

subdb002	Tests basic subdb functionality
			Small keys, small data
			Put/get per key
			Dump file
			Close, reopen
			Dump file

subdb003	Tests many subdbs
			Creates many subdbs and puts a small amount of
			data in each (many defaults to 2000)

subdb004	Tests large subdb names
			subdb name = filecontents,
			    key = filename, data = filecontents
			Put/get per key
			Dump file
			Dump subdbs, verify data and subdb name match

subdb005	Tests cursor operations in subdbs
			Put/get per key
			Verify cursor operations work within subdb
			Verify cursor operations do not work across subdbs

subdb006	Tests intra-subdb join

subdb007	Tests page size differences between subdbs
			Open several subdbs, each with a different pagesize
			Small keys, small data
			Put/get per key per subdb
			Dump file, verify per subdb
			Close, reopen per subdb
			Dump file, verify per subdb

subdb008	Tests lorder differences between subdbs
			Open several subdbs, each with a different/random lorder
			Small keys, small data
			Put/get per key per subdb
			Dump file, verify per subdb
			Close, reopen per subdb
			Dump file, verify per subdb

subdb009	Test DB->rename() method for subdbs

subdb010	Test DB->remove() method for subdbs

subdbtest001 	Tests multiple access methods in one subdb
			Open several subdbs, each with a different access method
			Small keys, small data
			Put/get per key per subdb
			Dump file, verify per subdb
			Close, reopen per subdb
			Dump file, verify per subdb

subdbtest002    Tests multiple access methods in one subdb access by
		multiple processes
			Open several subdbs, each with a different access method
			Small keys, small data
			Put/get per key per subdb
			Fork off several child procs to each delete selected
			    data from their subdb and then exit
			Dump file, verify contents of each subdb is correct
			Close, reopen per subdb
			Dump file, verify per subdb

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Transaction tests
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
txn001		Begin, commit, abort testing.

txn002		Verify that  read-only transactions do not write log records.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Environment tests
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
env001 		Test of env remove interface (formerly env_remove).

env002		Test of DB_LOG_DIR and env name resolution.

env003		Test of DB_TMP_DIR and env name resolution.

env004		Multiple data directories test.

env005		Test for using subsystems without initializing them correctly.

env006		Smoke test that the utilities all run.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
RPC tests
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[RPC tests also include running all Access Method tests for all methods
via an RPC server]

rpc001		Test RPC server timeouts for cursor, txn and env handles.

rpc002		Test unsupported functions 

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Recno backing file tests
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
rsrc001		Basic backing file test (put/get)

rsrc002		Test of set_re_delim