📄 tests
字号:
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. Use the first 10,000 entries from the dictionary. Insert each with self as key and data; add duplicate records for each. Then do some key_first/key_last add_before, add_after operations. This does not work for recno To test if dups work when they fall off the main page, run this with a very tiny page size.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test012 Large keys/small data Same as test003 except use big keys (source files and executables) and small data (the file/executable names). Take the source files and dbtest executable and enter their contents as the key with their names as data. After all are entered, retrieve all; compare output to original. Close file, reopen, do retrieve and re-verify.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test013 Partial put test Overwrite entire records using partial puts. Make surethat NOOVERWRITE flag works. 1. Insert 10000 keys and retrieve them (equal key/data pairs). 2. Attempt to overwrite keys with NO_OVERWRITE set (expect error). 3. Actually overwrite each one with its datum reversed. No partial testing here.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=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. Partial put test, small data, replacing with same size. The data set consists of the first nentries of the dictionary. We will insert them (and retrieve them) as we do in test 1 (equal key/data pairs). Then we'll try to perform partial puts of some characters at the beginning, some at the end, and some at the middle.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=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. Partial put test where partial puts make the record smaller. Use the first 10,000 entries from the dictionary. Insert each with self as key and a fixed, medium length data string; retrieve each. After all are entered, go back and do partial puts, replacing a random-length string with the key value. Then verify.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test017 Basic offpage duplicate test. Run duplicates with small page size so that we test off page duplicates. Then after we have an off-page database, test with overflow pages too.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test018 Offpage duplicate test Key_{first,last,before,after} offpage duplicates. Run duplicates with small page size so that we test off page duplicates.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test019 Partial get test.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test020 In-Memory database tests.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test021 Btree range tests. Use the first 10,000 entries from the dictionary. Insert each with self, reversed as key and self as data. After all are entered, retrieve each using a cursor SET_RANGE, and getting about 20 keys sequentially after it (in some cases we'll run out towards the end of the file).=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test022 Test of DB->getbyteswapped().=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test023 Duplicate test Exercise deletes and cursor operations within a duplicate set. Add a key with duplicates (first time on-page, second time off-page) Number the dups. Delete dups and make sure that CURRENT/NEXT/PREV work correctly.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test024 Record number retrieval test. Test the Btree and Record number get-by-number functionality.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=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 Keyed delete test through cursor. If ndups is small; this will test on-page dups; if it's large, it will test off-page dups.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test027 Off-page duplicate test Test026 with parameters to force off-page duplicates. Check that delete operations work. Create a database; close database and reopen it. Then issues delete by key for each entry.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test028 Cursor delete test Test put operations after deleting through a cursor.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test029 Test the Btree and Record number renumbering.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test030 Test DB_NEXT_DUP Functionality.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test031 Duplicate sorting functionality Make sure DB_NODUPDATA works. Use the first 10,000 entries from the dictionary. Insert each with self as key and "ndups" duplicates For the data field, prepend random five-char strings (see test032) that we force the duplicate sorting code to do something. Along the way, test that we cannot insert duplicate duplicates using DB_NODUPDATA. By setting ndups large, we can make this an off-page test After all are entered, retrieve all; verify output. Close file, reopen, do retrieve and re-verify. This does not work for recno=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test032 DB_GET_BOTH, DB_GET_BOTH_RANGE Use the first 10,000 entries from the dictionary. Insert each with self as key and "ndups" duplicates. For the data field, prepend the letters of the alphabet in a random order so we force the duplicate sorting code to do something. By setting ndups large, we can make this an off-page test. Test the DB_GET_BOTH functionality by retrieving each dup in the file explicitly. Test the DB_GET_BOTH_RANGE functionality by retrieving the unique key prefix (cursor only). Finally test the failure case.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test033 DB_GET_BOTH without comparison function Use the first 10,000 entries from the dictionary. Insert each with self as key and data; add duplicate records for each. After all are entered, retrieve all and verify output using DB_GET_BOTH (on DB and DBC handles) and DB_GET_BOTH_RANGE (on a DBC handle) on existent and nonexistent keys. XXX This does not work for rbtree.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test034 test032 with off-page duplicates DB_GET_BOTH, DB_GET_BOTH_RANGE functionality with off-page duplicates.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test035 Test033 with off-page duplicates DB_GET_BOTH functionality with off-page duplicates.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test036 Test KEYFIRST and KEYLAST when the key doesn't exist Put nentries key/data pairs (from the dictionary) using a cursor and KEYFIRST and KEYLAST (this tests the case where use use cursor put for non-existent keys).=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test037 Test DB_RMW=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test038 DB_GET_BOTH, DB_GET_BOTH_RANGE on deleted items Use the first 10,000 entries from the dictionary. Insert each with self as key and "ndups" duplicates. For the data field, prepend the letters of the alphabet in a random order so we force the duplicate sorting code to do something. By setting ndups large, we can make this an off-page test Test the DB_GET_BOTH and DB_GET_BOTH_RANGE functionality by retrieving each dup in the file explicitly. Then remove each duplicate and try the retrieval again.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test039 DB_GET_BOTH/DB_GET_BOTH_RANGE on deleted items without comparison function. Use the first 10,000 entries from the dictionary. Insert each with self as key and "ndups" duplicates. For the data field, prepend the letters of the alphabet in a random order so we force the duplicate sorting code to do something. By setting ndups large, we can make this an off-page test. Test the DB_GET_BOTH and DB_GET_BOTH_RANGE functionality by retrieving each dup in the file explicitly. Then remove each duplicate and try the retrieval again.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test040 Test038 with off-page duplicates DB_GET_BOTH functionality with off-page duplicates.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test041 Test039 with off-page duplicates DB_GET_BOTH functionality with off-page duplicates.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test042 Concurrent Data Store test (CDB) Multiprocess DB test; verify that locking is working for the concurrent access method product. Use the first "nentries" words from the dictionary. Insert each with self as key and a fixed, medium length data string. Then fire off multiple processes that bang on the database. Each one should try to read and write random keys. When they rewrite, they'll append their pid to the data string (sometimes doing a rewrite sometimes doing a partial put). Some will use cursors to traverse through a few keys before finding one to write.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test043 Recno renumbering and implicit creation test Test the Record number implicit creation and renumbering options.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test044 Small system integration tests Test proper functioning of the checkpoint daemon, recovery, transactions, etc. System integration DB test: verify that locking, recovery, checkpoint, and all the other utilities basically work. The test consists of $nprocs processes operating on $nfiles files. A transaction consists of adding the same key/data pair to some random number of these files. We generate a bimodal distribution in key size with 70% of the keys being small (1-10 characters) and the remaining 30% of the keys being large (uniform distribution about mean $key_avg). If we generate a key, we first check to make sure that the key is not already in the dataset. If it is, we do a lookup.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test045 Small random tester Runs a number of random add/delete/retrieve operations. Tests both successful conditions and error conditions. Run the random db tester on the specified access method.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test046 Overwrite test of small/big key/data with cursor checks.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test047 DBcursor->c_get get test with SET_RANGE option.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test048 Cursor stability across Btree splits.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test049 Cursor operations on uninitialized cursors.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test050 Overwrite test of small/big key/data with cursor checks for Recno.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test051 Fixed-length record Recno test. 0. Test various flags (legal and illegal) to open 1. Test partial puts where dlen != size (should fail) 2. Partial puts for existent record -- replaces at beg, mid, and end of record, as well as full replace=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test052 Renumbering record Recno test.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test053 Test of the DB_REVSPLITOFF flag in the Btree and Btree-w-recnum methods.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=test054 Cursor maintenance during key/data deletion. This test checks for cursor maintenance in the presence of deletes. There are N different scenarios to tests: 1. No duplicates. Cursor A deletes a key, do a GET for the key. 2. No duplicates. Cursor is positioned right before key K, Delete K, do a next on the cursor. 3. No duplicates. Cursor is positioned on key K, do a regular delete of K, do a current get on K. 4. Repeat 3 but do a next instead of current. 5. Duplicates. Cursor A is on the first item of a duplicate set, A does a delete. Then we do a non-cursor get. 6. Duplicates. Cursor A is in a duplicate set and deletes the item. do a delete of the entire Key. Test cursor current. 7. Continue last test and try cursor next. 8. Duplicates. Cursor A is in a duplicate set and deletes the item. Cursor B is in the same duplicate set and deletes a different item. Verify that the cursor is in the right place. 9. Cursors A and B are in the place in the same duplicate set. A deletes its item. Do current on B. 10. Continue 8 and do a next on B.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -