mirror of
https://github.com/MariaDB/server.git
synced 2026-04-22 08:15:31 +02:00
BitKeeper/deleted/.del-ex_access.wpj~3df6ae8c99bf7c5f: Delete: bdb/build_vxworks/ex_access/ex_access.wpj BitKeeper/deleted/.del-ex_btrec.wpj~a7622f1c6f432dc6: Delete: bdb/build_vxworks/ex_btrec/ex_btrec.wpj BitKeeper/deleted/.del-ex_dbclient.wpj~7345440f3b204cdd: Delete: bdb/build_vxworks/ex_dbclient/ex_dbclient.wpj BitKeeper/deleted/.del-ex_env.wpj~fbe1ab10b04e8b74: Delete: bdb/build_vxworks/ex_env/ex_env.wpj BitKeeper/deleted/.del-ex_mpool.wpj~4479cfd5c45f327d: Delete: bdb/build_vxworks/ex_mpool/ex_mpool.wpj BitKeeper/deleted/.del-ex_tpcb.wpj~f78093006e14bf41: Delete: bdb/build_vxworks/ex_tpcb/ex_tpcb.wpj BitKeeper/deleted/.del-db_buildall.dsp~bd749ff6da11682: Delete: bdb/build_win32/db_buildall.dsp BitKeeper/deleted/.del-cxx_app.cpp~ad8df8e0791011ed: Delete: bdb/cxx/cxx_app.cpp BitKeeper/deleted/.del-cxx_log.cpp~a50ff3118fe06952: Delete: bdb/cxx/cxx_log.cpp BitKeeper/deleted/.del-cxx_table.cpp~ecd751e79b055556: Delete: bdb/cxx/cxx_table.cpp BitKeeper/deleted/.del-namemap.txt~796a3acd3885d8fd: Delete: bdb/cxx/namemap.txt BitKeeper/deleted/.del-Design.fileop~3ca4da68f1727373: Delete: bdb/db/Design.fileop BitKeeper/deleted/.del-db185_int.h~61bee3736e7959ef: Delete: bdb/db185/db185_int.h BitKeeper/deleted/.del-acconfig.h~411e8854d67ad8b5: Delete: bdb/dist/acconfig.h BitKeeper/deleted/.del-mutex.m4~a13383cde18a64e1: Delete: bdb/dist/aclocal/mutex.m4 BitKeeper/deleted/.del-options.m4~b9d0ca637213750a: Delete: bdb/dist/aclocal/options.m4 BitKeeper/deleted/.del-programs.m4~3ce7890b47732b30: Delete: bdb/dist/aclocal/programs.m4 BitKeeper/deleted/.del-tcl.m4~f944e2db93c3b6db: Delete: bdb/dist/aclocal/tcl.m4 BitKeeper/deleted/.del-types.m4~59cae158c9a32cff: Delete: bdb/dist/aclocal/types.m4 BitKeeper/deleted/.del-script~d38f6d3a4f159cb4: Delete: bdb/dist/build/script BitKeeper/deleted/.del-configure.in~ac795a92c8fe049c: Delete: bdb/dist/configure.in BitKeeper/deleted/.del-ltconfig~66bbd007d8024af: Delete: bdb/dist/ltconfig BitKeeper/deleted/.del-rec_ctemp~a28554362534f00a: Delete: bdb/dist/rec_ctemp BitKeeper/deleted/.del-s_tcl~2ffe4326459fcd9f: Delete: bdb/dist/s_tcl BitKeeper/deleted/.del-.IGNORE_ME~d8148b08fa7d5d15: Delete: bdb/dist/template/.IGNORE_ME BitKeeper/deleted/.del-btree.h~179f2aefec1753d: Delete: bdb/include/btree.h BitKeeper/deleted/.del-cxx_int.h~6b649c04766508f8: Delete: bdb/include/cxx_int.h BitKeeper/deleted/.del-db.src~6b433ae615b16a8d: Delete: bdb/include/db.src BitKeeper/deleted/.del-db_185.h~ad8b373d9391d35c: Delete: bdb/include/db_185.h BitKeeper/deleted/.del-db_am.h~a714912b6b75932f: Delete: bdb/include/db_am.h BitKeeper/deleted/.del-db_cxx.h~fcafadf45f5d19e9: Delete: bdb/include/db_cxx.h BitKeeper/deleted/.del-db_dispatch.h~6844f20f7eb46904: Delete: bdb/include/db_dispatch.h BitKeeper/deleted/.del-db_int.src~419a3f48b6a01da7: Delete: bdb/include/db_int.src BitKeeper/deleted/.del-db_join.h~76f9747a42c3399a: Delete: bdb/include/db_join.h BitKeeper/deleted/.del-db_page.h~e302ca3a4db3abdc: Delete: bdb/include/db_page.h BitKeeper/deleted/.del-db_server_int.h~e1d20b6ba3bca1ab: Delete: bdb/include/db_server_int.h BitKeeper/deleted/.del-db_shash.h~5fbf2d696fac90f3: Delete: bdb/include/db_shash.h BitKeeper/deleted/.del-db_swap.h~1e60887550864a59: Delete: bdb/include/db_swap.h BitKeeper/deleted/.del-db_upgrade.h~c644eee73701fc8d: Delete: bdb/include/db_upgrade.h BitKeeper/deleted/.del-db_verify.h~b8d6c297c61f342e: Delete: bdb/include/db_verify.h BitKeeper/deleted/.del-debug.h~dc2b4f2cf27ccebc: Delete: bdb/include/debug.h BitKeeper/deleted/.del-hash.h~2aaa548b28882dfb: Delete: bdb/include/hash.h BitKeeper/deleted/.del-lock.h~a761c1b7de57b77f: Delete: bdb/include/lock.h BitKeeper/deleted/.del-log.h~ff20184238e35e4d: Delete: bdb/include/log.h BitKeeper/deleted/.del-mp.h~7e317597622f3411: Delete: bdb/include/mp.h BitKeeper/deleted/.del-mutex.h~d3ae7a2977a68137: Delete: bdb/include/mutex.h BitKeeper/deleted/.del-os.h~91867cc8757cd0e3: Delete: bdb/include/os.h BitKeeper/deleted/.del-os_jump.h~e1b939fa5151d4be: Delete: bdb/include/os_jump.h BitKeeper/deleted/.del-qam.h~6fad0c1b5723d597: Delete: bdb/include/qam.h BitKeeper/deleted/.del-queue.h~4c72c0826c123d5: Delete: bdb/include/queue.h BitKeeper/deleted/.del-region.h~513fe04d977ca0fc: Delete: bdb/include/region.h BitKeeper/deleted/.del-shqueue.h~525fc3e6c2025c36: Delete: bdb/include/shqueue.h BitKeeper/deleted/.del-tcl_db.h~c536fd61a844f23f: Delete: bdb/include/tcl_db.h BitKeeper/deleted/.del-txn.h~c8d94b221ec147e4: Delete: bdb/include/txn.h BitKeeper/deleted/.del-xa.h~ecc466493aae9d9a: Delete: bdb/include/xa.h BitKeeper/deleted/.del-DbRecoveryInit.java~756b52601a0b9023: Delete: bdb/java/src/com/sleepycat/db/DbRecoveryInit.java BitKeeper/deleted/.del-DbTxnRecover.java~74607cba7ab89d6d: Delete: bdb/java/src/com/sleepycat/db/DbTxnRecover.java BitKeeper/deleted/.del-lock_conflict.c~fc5e0f14cf597a2b: Delete: bdb/lock/lock_conflict.c BitKeeper/deleted/.del-log.src~53ac9e7b5cb023f2: Delete: bdb/log/log.src BitKeeper/deleted/.del-log_findckp.c~24287f008916e81f: Delete: bdb/log/log_findckp.c BitKeeper/deleted/.del-log_rec.c~d51711f2cac09297: Delete: bdb/log/log_rec.c BitKeeper/deleted/.del-log_register.c~b40bb4efac75ca15: Delete: bdb/log/log_register.c BitKeeper/deleted/.del-Design~b3d0f179f2767b: Delete: bdb/mp/Design BitKeeper/deleted/.del-os_finit.c~95dbefc6fe79b26c: Delete: bdb/os/os_finit.c BitKeeper/deleted/.del-os_abs.c~df95d1e7db81924: Delete: bdb/os_vxworks/os_abs.c BitKeeper/deleted/.del-os_finit.c~803b484bdb9d0122: Delete: bdb/os_vxworks/os_finit.c BitKeeper/deleted/.del-os_map.c~3a6d7926398b76d3: Delete: bdb/os_vxworks/os_map.c BitKeeper/deleted/.del-os_finit.c~19a227c6d3c78ad: Delete: bdb/os_win32/os_finit.c BitKeeper/deleted/.del-log-corruption.patch~1cf2ecc7c6408d5d: Delete: bdb/patches/log-corruption.patch BitKeeper/deleted/.del-Btree.pm~af6d0c5eaed4a98e: Delete: bdb/perl.BerkeleyDB/BerkeleyDB/Btree.pm BitKeeper/deleted/.del-BerkeleyDB.pm~7244036d4482643: Delete: bdb/perl.BerkeleyDB/BerkeleyDB.pm BitKeeper/deleted/.del-BerkeleyDB.pod~e7b18fd6132448e3: Delete: bdb/perl.BerkeleyDB/BerkeleyDB.pod BitKeeper/deleted/.del-Hash.pm~10292a26c06a5c95: Delete: bdb/perl.BerkeleyDB/BerkeleyDB/Hash.pm BitKeeper/deleted/.del-BerkeleyDB.pod.P~79f76a1495eda203: Delete: bdb/perl.BerkeleyDB/BerkeleyDB.pod.P BitKeeper/deleted/.del-BerkeleyDB.xs~80c99afbd98e392c: Delete: bdb/perl.BerkeleyDB/BerkeleyDB.xs BitKeeper/deleted/.del-Changes~729c1891efa60de9: Delete: bdb/perl.BerkeleyDB/Changes BitKeeper/deleted/.del-MANIFEST~63a1e34aecf157a0: Delete: bdb/perl.BerkeleyDB/MANIFEST BitKeeper/deleted/.del-Makefile.PL~c68797707d8df87a: Delete: bdb/perl.BerkeleyDB/Makefile.PL BitKeeper/deleted/.del-README~5f2f579b1a241407: Delete: bdb/perl.BerkeleyDB/README BitKeeper/deleted/.del-Todo~dca3c66c193adda9: Delete: bdb/perl.BerkeleyDB/Todo BitKeeper/deleted/.del-config.in~ae81681e450e0999: Delete: bdb/perl.BerkeleyDB/config.in BitKeeper/deleted/.del-dbinfo~28ad67d83be4f68e: Delete: bdb/perl.BerkeleyDB/dbinfo BitKeeper/deleted/.del-mkconsts~543ab60669c7a04e: Delete: bdb/perl.BerkeleyDB/mkconsts BitKeeper/deleted/.del-mkpod~182c0ca54e439afb: Delete: bdb/perl.BerkeleyDB/mkpod BitKeeper/deleted/.del-5.004~e008cb5a48805543: Delete: bdb/perl.BerkeleyDB/patches/5.004 BitKeeper/deleted/.del-irix_6_5.pl~61662bb08afcdec8: Delete: bdb/perl.BerkeleyDB/hints/irix_6_5.pl BitKeeper/deleted/.del-solaris.pl~6771e7182394e152: Delete: bdb/perl.BerkeleyDB/hints/solaris.pl BitKeeper/deleted/.del-typemap~783b8f5295b05f3d: Delete: bdb/perl.BerkeleyDB/typemap BitKeeper/deleted/.del-5.004_01~6081ce2fff7b0bc: Delete: bdb/perl.BerkeleyDB/patches/5.004_01 BitKeeper/deleted/.del-5.004_02~87214eac35ad9e6: Delete: bdb/perl.BerkeleyDB/patches/5.004_02 BitKeeper/deleted/.del-5.004_03~9a672becec7cb40f: Delete: bdb/perl.BerkeleyDB/patches/5.004_03 BitKeeper/deleted/.del-5.004_04~e326cb51af09d154: Delete: bdb/perl.BerkeleyDB/patches/5.004_04 BitKeeper/deleted/.del-5.004_05~7ab457a1e41a92fe: Delete: bdb/perl.BerkeleyDB/patches/5.004_05 BitKeeper/deleted/.del-5.005~f9e2d59b5964cd4b: Delete: bdb/perl.BerkeleyDB/patches/5.005 BitKeeper/deleted/.del-5.005_01~3eb9fb7b5842ea8e: Delete: bdb/perl.BerkeleyDB/patches/5.005_01 BitKeeper/deleted/.del-5.005_02~67477ce0bef717cb: Delete: bdb/perl.BerkeleyDB/patches/5.005_02 BitKeeper/deleted/.del-5.005_03~c4c29a1fb21e290a: Delete: bdb/perl.BerkeleyDB/patches/5.005_03 BitKeeper/deleted/.del-5.6.0~e1fb9897d124ee22: Delete: bdb/perl.BerkeleyDB/patches/5.6.0 BitKeeper/deleted/.del-btree.t~e4a1a3c675ddc406: Delete: bdb/perl.BerkeleyDB/t/btree.t BitKeeper/deleted/.del-db-3.0.t~d2c60991d84558f2: Delete: bdb/perl.BerkeleyDB/t/db-3.0.t BitKeeper/deleted/.del-db-3.1.t~6ee88cd13f55e018: Delete: bdb/perl.BerkeleyDB/t/db-3.1.t BitKeeper/deleted/.del-db-3.2.t~f73b6461f98fd1cf: Delete: bdb/perl.BerkeleyDB/t/db-3.2.t BitKeeper/deleted/.del-destroy.t~cc6a2ae1980a2ecd: Delete: bdb/perl.BerkeleyDB/t/destroy.t BitKeeper/deleted/.del-env.t~a8604a4499c4bd07: Delete: bdb/perl.BerkeleyDB/t/env.t BitKeeper/deleted/.del-examples.t~2571b77c3cc75574: Delete: bdb/perl.BerkeleyDB/t/examples.t BitKeeper/deleted/.del-examples.t.T~8228bdd75ac78b88: Delete: bdb/perl.BerkeleyDB/t/examples.t.T BitKeeper/deleted/.del-examples3.t.T~66a186897a87026d: Delete: bdb/perl.BerkeleyDB/t/examples3.t.T BitKeeper/deleted/.del-examples3.t~fe3822ba2f2d7f83: Delete: bdb/perl.BerkeleyDB/t/examples3.t BitKeeper/deleted/.del-filter.t~f87b045c1b708637: Delete: bdb/perl.BerkeleyDB/t/filter.t BitKeeper/deleted/.del-hash.t~616bfb4d644de3a3: Delete: bdb/perl.BerkeleyDB/t/hash.t BitKeeper/deleted/.del-join.t~29fc39f74a83ca22: Delete: bdb/perl.BerkeleyDB/t/join.t BitKeeper/deleted/.del-mldbm.t~31f5015341eea040: Delete: bdb/perl.BerkeleyDB/t/mldbm.t BitKeeper/deleted/.del-queue.t~8f338034ce44a641: Delete: bdb/perl.BerkeleyDB/t/queue.t BitKeeper/deleted/.del-recno.t~d4ddbd3743add63e: Delete: bdb/perl.BerkeleyDB/t/recno.t BitKeeper/deleted/.del-strict.t~6885cdd2ea71ca2d: Delete: bdb/perl.BerkeleyDB/t/strict.t BitKeeper/deleted/.del-subdb.t~aab62a5d5864c603: Delete: bdb/perl.BerkeleyDB/t/subdb.t BitKeeper/deleted/.del-txn.t~65033b8558ae1216: Delete: bdb/perl.BerkeleyDB/t/txn.t BitKeeper/deleted/.del-unknown.t~f3710458682665e1: Delete: bdb/perl.BerkeleyDB/t/unknown.t BitKeeper/deleted/.del-Changes~436f74a5c414c65b: Delete: bdb/perl.DB_File/Changes BitKeeper/deleted/.del-DB_File.pm~ae0951c6c7665a82: Delete: bdb/perl.DB_File/DB_File.pm BitKeeper/deleted/.del-DB_File.xs~89e49a0b5556f1d8: Delete: bdb/perl.DB_File/DB_File.xs BitKeeper/deleted/.del-DB_File_BS~290fad5dbbb87069: Delete: bdb/perl.DB_File/DB_File_BS BitKeeper/deleted/.del-MANIFEST~90ee581572bdd4ac: Delete: bdb/perl.DB_File/MANIFEST BitKeeper/deleted/.del-Makefile.PL~ac0567bb5a377e38: Delete: bdb/perl.DB_File/Makefile.PL BitKeeper/deleted/.del-README~77e924a5a9bae6b3: Delete: bdb/perl.DB_File/README BitKeeper/deleted/.del-config.in~ab4c2792b86a810b: Delete: bdb/perl.DB_File/config.in BitKeeper/deleted/.del-dbinfo~461c43b30fab2cb: Delete: bdb/perl.DB_File/dbinfo BitKeeper/deleted/.del-dynixptx.pl~50dcddfae25d17e9: Delete: bdb/perl.DB_File/hints/dynixptx.pl BitKeeper/deleted/.del-typemap~55cffb3288a9e587: Delete: bdb/perl.DB_File/typemap BitKeeper/deleted/.del-version.c~a4df0e646f8b3975: Delete: bdb/perl.DB_File/version.c BitKeeper/deleted/.del-5.004_01~d6830d0082702af7: Delete: bdb/perl.DB_File/patches/5.004_01 BitKeeper/deleted/.del-5.004_02~78b082dc80c91031: Delete: bdb/perl.DB_File/patches/5.004_02 BitKeeper/deleted/.del-5.004~4411ec2e3c9e008b: Delete: bdb/perl.DB_File/patches/5.004 BitKeeper/deleted/.del-sco.pl~1e795fe14fe4dcfe: Delete: bdb/perl.DB_File/hints/sco.pl BitKeeper/deleted/.del-5.004_03~33f274648b160d95: Delete: bdb/perl.DB_File/patches/5.004_03 BitKeeper/deleted/.del-5.004_04~8f3d1b3cf18bb20a: Delete: bdb/perl.DB_File/patches/5.004_04 BitKeeper/deleted/.del-5.004_05~9c0f02e7331e142: Delete: bdb/perl.DB_File/patches/5.004_05 BitKeeper/deleted/.del-5.005~c2108cb2e3c8d951: Delete: bdb/perl.DB_File/patches/5.005 BitKeeper/deleted/.del-5.005_01~3b45e9673afc4cfa: Delete: bdb/perl.DB_File/patches/5.005_01 BitKeeper/deleted/.del-5.005_02~9fe5766bb02a4522: Delete: bdb/perl.DB_File/patches/5.005_02 BitKeeper/deleted/.del-5.005_03~ffa1c38c19ae72ea: Delete: bdb/perl.DB_File/patches/5.005_03 BitKeeper/deleted/.del-5.6.0~373be3a5ce47be85: Delete: bdb/perl.DB_File/patches/5.6.0 BitKeeper/deleted/.del-db-btree.t~3231595a1c241eb3: Delete: bdb/perl.DB_File/t/db-btree.t BitKeeper/deleted/.del-db-hash.t~7c4ad0c795c7fad2: Delete: bdb/perl.DB_File/t/db-hash.t BitKeeper/deleted/.del-db-recno.t~6c2d3d80b9ba4a50: Delete: bdb/perl.DB_File/t/db-recno.t BitKeeper/deleted/.del-db_server.sed~cdb00ebcd48a64e2: Delete: bdb/rpc_server/db_server.sed BitKeeper/deleted/.del-db_server_proc.c~d46c8f409c3747f4: Delete: bdb/rpc_server/db_server_proc.c BitKeeper/deleted/.del-db_server_svc.sed~3f5e59f334fa4607: Delete: bdb/rpc_server/db_server_svc.sed BitKeeper/deleted/.del-db_server_util.c~a809f3a4629acda: Delete: bdb/rpc_server/db_server_util.c BitKeeper/deleted/.del-log.tcl~ff1b41f1355b97d7: Delete: bdb/test/log.tcl BitKeeper/deleted/.del-mpool.tcl~b0df4dc1b04db26c: Delete: bdb/test/mpool.tcl BitKeeper/deleted/.del-mutex.tcl~52fd5c73a150565: Delete: bdb/test/mutex.tcl BitKeeper/deleted/.del-txn.tcl~c4ff071550b5446e: Delete: bdb/test/txn.tcl BitKeeper/deleted/.del-README~e800a12a5392010a: Delete: bdb/test/upgrade/README BitKeeper/deleted/.del-pack-2.6.6.pl~89d5076d758d3e98: Delete: bdb/test/upgrade/generate-2.X/pack-2.6.6.pl BitKeeper/deleted/.del-test-2.6.patch~4a52dc83d447547b: Delete: bdb/test/upgrade/generate-2.X/test-2.6.patch
1437 lines
48 KiB
Text
1437 lines
48 KiB
Text
# Automatically built by dist/s_test; may require local editing.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
bigfile001
|
|
Create a database greater than 4 GB in size. Close, verify.
|
|
Grow the database somewhat. Close, reverify. Lather, rinse,
|
|
repeat. Since it will not work on all systems, this test is
|
|
not run by default.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
bigfile002
|
|
This one should be faster and not require so much disk space,
|
|
although it doesn't test as extensively. Create an mpool file
|
|
with 1K pages. Dirty page 6000000. Sync.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
dbm
|
|
Historic DBM interface test. Use the first 1000 entries from the
|
|
dictionary. Insert each with self as key and data; retrieve each.
|
|
After all are entered, retrieve all; compare output to original.
|
|
Then reopen the file, re-retrieve everything. Finally, delete
|
|
everything.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
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 DB_LOCK_OLDEST and
|
|
DB_LOCK_YOUNGEST. Verify the correct lock was aborted/granted.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
dead006
|
|
use timeouts rather than the normal dd algorithm.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
dead007
|
|
use timeouts rather than the normal dd algorithm.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
env001
|
|
Test of env remove interface (formerly env_remove).
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
env002
|
|
Test of DB_LOG_DIR and env name resolution.
|
|
With an environment path specified using -home, and then again
|
|
with it specified by the environment variable DB_HOME:
|
|
1) Make sure that the set_lg_dir option is respected
|
|
a) as a relative pathname.
|
|
b) as an absolute pathname.
|
|
2) Make sure that the DB_LOG_DIR db_config argument is respected,
|
|
again as relative and absolute pathnames.
|
|
3) Make sure that if -both- db_config and a file are present,
|
|
only the file is respected (see doc/env/naming.html).
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
env003
|
|
Test DB_TMP_DIR and env name resolution
|
|
With an environment path specified using -home, and then again
|
|
with it specified by the environment variable DB_HOME:
|
|
1) Make sure that the DB_TMP_DIR config file option is respected
|
|
a) as a relative pathname.
|
|
b) as an absolute pathname.
|
|
2) Make sure that the -tmp_dir config option is respected,
|
|
again as relative and absolute pathnames.
|
|
3) Make sure that if -both- -tmp_dir and a file are present,
|
|
only the file is respected (see doc/env/naming.html).
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
env004
|
|
Test multiple data directories. Do a bunch of different opens
|
|
to make sure that the files are detected in different directories.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
env005
|
|
Test that using subsystems without initializing them correctly
|
|
returns an error. Cannot test mpool, because it is assumed in
|
|
the Tcl code.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
env006
|
|
Make sure that all the utilities exist and run.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
env007
|
|
Test various DB_CONFIG config file options.
|
|
1) Make sure command line option is respected
|
|
2) Make sure that config file option is respected
|
|
3) Make sure that if -both- DB_CONFIG and the set_<whatever>
|
|
method is used, only the file is respected.
|
|
Then test all known config options.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
env008
|
|
Test environments and subdirectories.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
env009
|
|
Test calls to all the various stat functions. We have several
|
|
sprinkled throughout the test suite, but this will ensure that
|
|
we run all of them at least once.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
env010
|
|
Run recovery in an empty directory, and then make sure we can still
|
|
create a database in that directory.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
env011
|
|
Run with region overwrite flag.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
jointest
|
|
Test duplicate assisted joins. Executes 1, 2, 3 and 4-way joins
|
|
with differing index orders and selectivity.
|
|
|
|
We'll test 2-way, 3-way, and 4-way joins and figure that if those
|
|
work, everything else does as well. We'll create test databases
|
|
called join1.db, join2.db, join3.db, and join4.db. The number on
|
|
the database describes the duplication -- duplicates are of the
|
|
form 0, N, 2N, 3N, ... where N is the number of the database.
|
|
Primary.db is the primary database, and null.db is the database
|
|
that has no matching duplicates.
|
|
|
|
We should test this on all btrees, all hash, and a combination thereof
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
lock001
|
|
Make sure that the basic lock tests work. Do some simple gets
|
|
and puts for a single locker.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
lock002
|
|
Exercise basic multi-process aspects of lock.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
lock003
|
|
Exercise multi-process aspects of lock. Generate a bunch of parallel
|
|
testers that try to randomly obtain locks; make sure that the locks
|
|
correctly protect corresponding objects.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
lock004
|
|
Test locker ids wraping around.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
lock005
|
|
Check that page locks are being released properly.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
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
|
|
Make sure that if we do PREVs on a log, but the beginning of the
|
|
log has been truncated, we do the right thing.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
log005
|
|
Check that log file sizes can change on the fly.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
memp001
|
|
Randomly updates pages.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
memp002
|
|
Tests multiple processes accessing and modifying the same files.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
memp003
|
|
Test reader-only/writer process combinations; we use the access methods
|
|
for testing.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
mutex001
|
|
Test basic mutex functionality
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
mutex002
|
|
Test basic mutex synchronization
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
mutex003
|
|
Generate a bunch of parallel testers that try to randomly obtain locks.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
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).
|
|
|
|
These are the most basic recovery tests. We do individual recovery
|
|
tests for each operation in the access method interface. First we
|
|
create a file and capture the state of the database (i.e., we copy
|
|
it. Then we run a transaction containing a single operation. In
|
|
one test, we abort the transaction and compare the outcome to the
|
|
original copy of the file. In the second test, we restore the
|
|
original copy of the database and then run recovery and compare
|
|
this against the actual database.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
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.
|
|
|
|
Test all the duplicate log messages and recovery operations. We make
|
|
sure that we exercise all possible recovery actions: redo, undo, undo
|
|
but no fix necessary and redo but no fix necessary.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
recd004
|
|
Big key test where big key gets elevated to internal page.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
recd005
|
|
Verify reuse of file ids works on catastrophic recovery.
|
|
|
|
Make sure that we can do catastrophic recovery even if we open
|
|
files using the same log file id.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
recd006
|
|
Nested transactions.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
recd007
|
|
File create/delete tests.
|
|
|
|
This is a recovery test for create/delete of databases. We have
|
|
hooks in the database so that we can abort the process at various
|
|
points and make sure that the transaction doesn't commit. We
|
|
then need to recover and make sure the file is correctly existing
|
|
or not, as the case may be.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
recd008
|
|
Test deeply nested transactions and many-child transactions.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
recd009
|
|
Verify record numbering across split/reverse splits and recovery.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
recd010
|
|
Test stability of btree duplicates across btree off-page dup splits
|
|
and reverse splits and across recovery.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
recd011
|
|
Verify that recovery to a specific timestamp works.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
recd012
|
|
Test of log file ID management. [#2288]
|
|
Test recovery handling of file opens and closes.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
recd013
|
|
Test of cursor adjustment on child transaction aborts. [#2373]
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
recd014
|
|
This is a recovery test for create/delete of queue extents. We
|
|
then need to recover and make sure the file is correctly existing
|
|
or not, as the case may be.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
recd015
|
|
This is a recovery test for testing lots of prepared txns.
|
|
This test is to force the use of txn_recover to call with the
|
|
DB_FIRST flag and then DB_NEXT.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
recd016
|
|
This is a recovery test for testing running recovery while
|
|
recovery is already running. While bad things may or may not
|
|
happen, if recovery is then run properly, things should be correct.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
recd017
|
|
Test recovery and security. This is basically a watered
|
|
down version of recd001 just to verify that encrypted environments
|
|
can be recovered.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
recd018
|
|
Test recover of closely interspersed checkpoints and commits.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
recd019
|
|
Test txn id wrap-around and recovery.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
recd020
|
|
Test recovery after checksum error.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
rep001
|
|
Replication rename and forced-upgrade test.
|
|
|
|
Run a modified version of test001 in a replicated master environment;
|
|
verify that the database on the client is correct.
|
|
Next, remove the database, close the master, upgrade the
|
|
client, reopen the master, and make sure the new master can correctly
|
|
run test001 and propagate it in the other direction.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
rep002
|
|
Basic replication election test.
|
|
|
|
Run a modified version of test001 in a replicated master environment;
|
|
hold an election among a group of clients to make sure they select
|
|
a proper master from amongst themselves, in various scenarios.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
rep003
|
|
Repeated shutdown/restart replication test
|
|
|
|
Run a quick put test in a replicated master environment; start up,
|
|
shut down, and restart client processes, with and without recovery.
|
|
To ensure that environment state is transient, use DB_PRIVATE.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
rep004
|
|
Test of DB_REP_LOGSONLY.
|
|
|
|
Run a quick put test in a master environment that has one logs-only
|
|
client. Shut down, then run catastrophic recovery in the logs-only
|
|
client and check that the database is present and populated.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
rep005
|
|
Replication election test with error handling.
|
|
|
|
Run a modified version of test001 in a replicated master environment;
|
|
hold an election among a group of clients to make sure they select
|
|
a proper master from amongst themselves, forcing errors at various
|
|
locations in the election path.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
rpc001
|
|
Test RPC server timeouts for cursor, txn and env handles.
|
|
Test RPC specifics, primarily that unsupported functions return
|
|
errors and such.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
rpc002
|
|
Test invalid RPC functions and make sure we error them correctly
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
rpc004
|
|
Test RPC server and security
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
rpc005
|
|
Test RPC server handle ID sharing
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
rsrc001
|
|
Recno backing file test. Try different patterns of adding
|
|
records and making sure that the corresponding file matches.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
rsrc002
|
|
Recno backing file test #2: test of set_re_delim. Specify a backing
|
|
file with colon-delimited records, and make sure they are correctly
|
|
interpreted.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
rsrc003
|
|
Recno backing file test. Try different patterns of adding
|
|
records and making sure that the corresponding file matches.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
rsrc004
|
|
Recno backing file test for EOF-terminated records.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
scr###
|
|
The scr### directories are shell scripts that test a variety of
|
|
things, including things about the distribution itself. These
|
|
tests won't run on most systems, so don't even try to run them.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
sdbtest001
|
|
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
|
|
|
|
Make several subdb's of different access methods all in one DB.
|
|
Rotate methods and repeat [#762].
|
|
Use the first 10,000 entries from the dictionary.
|
|
Insert each with self as key and data; retrieve each.
|
|
After all are entered, retrieve all; compare output to original.
|
|
Close file, reopen, do retrieve and re-verify.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
sdbtest002
|
|
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
|
|
|
|
Make several subdb's of different access methods all in one DB.
|
|
Fork of some child procs to each manipulate one subdb and when
|
|
they are finished, verify the contents of the databases.
|
|
Use the first 10,000 entries from the dictionary.
|
|
Insert each with self as key and data; retrieve each.
|
|
After all are entered, retrieve all; compare output to original.
|
|
Close file, reopen, do retrieve and re-verify.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
sec001
|
|
Test of security interface
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
sec002
|
|
Test of security interface and catching errors in the
|
|
face of attackers overwriting parts of existing files.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
sindex001
|
|
Basic secondary index put/delete test
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
sindex002
|
|
Basic cursor-based secondary index put/delete test
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
sindex003
|
|
sindex001 with secondaries created and closed mid-test
|
|
Basic secondary index put/delete test with secondaries
|
|
created mid-test.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
sindex004
|
|
sindex002 with secondaries created and closed mid-test
|
|
Basic cursor-based secondary index put/delete test, with
|
|
secondaries created mid-test.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
sindex006
|
|
Basic secondary index put/delete test with transactions
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
subdb001 Tests mixing db and subdb operations
|
|
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
|
|
|
|
Test non-subdb and subdb operations
|
|
Test naming (filenames begin with -)
|
|
Test existence (cannot create subdb of same name with -excl)
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
subdb002
|
|
Tests basic subdb functionality
|
|
Small keys, small data
|
|
Put/get per key
|
|
Dump file
|
|
Close, reopen
|
|
Dump file
|
|
|
|
Use the first 10,000 entries from the dictionary.
|
|
Insert each with self as key and data; retrieve each.
|
|
After all are entered, retrieve all; compare output to original.
|
|
Close file, reopen, do retrieve and re-verify.
|
|
Then repeat using an environment.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
subdb003
|
|
Tests many subdbs
|
|
Creates many subdbs and puts a small amount of
|
|
data in each (many defaults to 2000)
|
|
|
|
Use the first 10,000 entries from the dictionary as subdbnames.
|
|
Insert each with entry as name of subdatabase and a partial list
|
|
as key/data. After all are entered, retrieve all; compare output
|
|
to original. Close file, reopen, do retrieve and re-verify.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
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
|
|
|
|
Create 1 db with many large subdbs. Use the contents as subdb names.
|
|
Take the source files and dbtest executable and enter their names as
|
|
the key with their contents as data. After all are entered, retrieve
|
|
all; compare output to original. Close file, reopen, do retrieve and
|
|
re-verify.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
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
|
|
|
|
We'll test 2-way, 3-way, and 4-way joins and figure that if those work,
|
|
everything else does as well. We'll create test databases called
|
|
sub1.db, sub2.db, sub3.db, and sub4.db. The number on the database
|
|
describes the duplication -- duplicates are of the form 0, N, 2N, 3N,
|
|
... where N is the number of the database. Primary.db is the primary
|
|
database, and sub0.db is the database that has no matching duplicates.
|
|
All of these are within a single database.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
subdb007
|
|
Tests page size difference errors between subdbs.
|
|
Test 3 different scenarios for page sizes.
|
|
1. Create/open with a default page size, 2nd subdb create with
|
|
specified different one, should error.
|
|
2. Create/open with specific page size, 2nd subdb create with
|
|
different one, should error.
|
|
3. Create/open with specified page size, 2nd subdb create with
|
|
same specified size, should succeed.
|
|
(4th combo of using all defaults is a basic test, done elsewhere)
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
subdb008
|
|
Tests lorder difference errors between subdbs.
|
|
Test 3 different scenarios for lorder.
|
|
1. Create/open with specific lorder, 2nd subdb create with
|
|
different one, should error.
|
|
2. Create/open with a default lorder 2nd subdb create with
|
|
specified different one, should error.
|
|
3. Create/open with specified lorder, 2nd subdb create with
|
|
same specified lorder, should succeed.
|
|
(4th combo of using all defaults is a basic test, done elsewhere)
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
subdb009
|
|
Test DB->rename() method for subdbs
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
subdb010
|
|
Test DB->remove() method and DB->truncate() for subdbs
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
subdb011
|
|
Test deleting Subdbs with overflow pages
|
|
Create 1 db with many large subdbs.
|
|
Test subdatabases with overflow pages.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
subdb012
|
|
Test subdbs with locking and transactions
|
|
Tests creating and removing subdbs while handles
|
|
are open works correctly, and in the face of txns.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test001
|
|
Small keys/data
|
|
Put/get per key
|
|
Dump file
|
|
Close, reopen
|
|
Dump file
|
|
|
|
Use the first 10,000 entries from the dictionary.
|
|
Insert each with self as key and data; retrieve each.
|
|
After all are entered, retrieve all; compare output to original.
|
|
Close file, reopen, do retrieve and re-verify.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test002
|
|
Small keys/medium data
|
|
Put/get per key
|
|
Dump file
|
|
Close, reopen
|
|
Dump file
|
|
|
|
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, retrieve all; compare output
|
|
to original. Close file, reopen, do retrieve and re-verify.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test003
|
|
Small keys/large data
|
|
Put/get per key
|
|
Dump file
|
|
Close, reopen
|
|
Dump file
|
|
|
|
Take the source files and dbtest executable and enter their names
|
|
as the key with their contents as data. After all are entered,
|
|
retrieve all; compare output to original. Close file, reopen, do
|
|
retrieve and re-verify.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test004
|
|
Small keys/medium data
|
|
Put/get per key
|
|
Sequential (cursor) get/delete
|
|
|
|
Check that cursor operations work. Create a database.
|
|
Read through the database sequentially using cursors and
|
|
delete each element.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test005
|
|
Small keys/medium data
|
|
Put/get per key
|
|
Close, reopen
|
|
Sequential (cursor) get/delete
|
|
|
|
Check that cursor operations work. Create a database; close
|
|
it and reopen it. Then read through the database sequentially
|
|
using cursors and delete each element.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test006
|
|
Small keys/medium data
|
|
Put/get per key
|
|
Keyed delete and verify
|
|
|
|
Keyed delete test.
|
|
Create database.
|
|
Go through database, deleting all entries by key.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test007
|
|
Small keys/medium data
|
|
Put/get per key
|
|
Close, reopen
|
|
Keyed delete
|
|
|
|
Check that delete operations work. Create a database; close
|
|
database and reopen it. Then issues delete by key for each
|
|
entry.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
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
|
|
|
|
Take the source files and dbtest executable and enter their names as
|
|
the key with their contents as data. After all are entered, begin
|
|
looping through the entries; deleting some pairs and then readding them.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test009
|
|
Small keys/large data
|
|
Same as test008; close and reopen database
|
|
|
|
Check that we reuse overflow pages. Create database with lots of
|
|
big key/data pairs. Go through and delete and add keys back
|
|
randomly. Then close the DB and make sure that we have everything
|
|
we think we should.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test010
|
|
Duplicate test
|
|
Small key/data pairs.
|
|
|
|
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; verify output.
|
|
Close file, reopen, do retrieve and re-verify.
|
|
This does not work for recno
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
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.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test055
|
|
Basic cursor operations.
|
|
This test checks basic cursor operations.
|
|
There are N different scenarios to tests:
|
|
1. (no dups) Set cursor, retrieve current.
|
|
2. (no dups) Set cursor, retrieve next.
|
|
3. (no dups) Set cursor, retrieve prev.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test056
|
|
Cursor maintenance during deletes.
|
|
Check if deleting a key when a cursor is on a duplicate of that
|
|
key works.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test057
|
|
Cursor maintenance during key deletes.
|
|
Check if we handle the case where we delete a key with the cursor on
|
|
it and then add the same key. The cursor should not get the new item
|
|
returned, but the item shouldn't disappear.
|
|
Run test tests, one where the overwriting put is done with a put and
|
|
one where it's done with a cursor put.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test058
|
|
Verify that deleting and reading duplicates results in correct ordering.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test059
|
|
Cursor ops work with a partial length of 0.
|
|
Make sure that we handle retrieves of zero-length data items correctly.
|
|
The following ops, should allow a partial data retrieve of 0-length.
|
|
db_get
|
|
db_cget FIRST, NEXT, LAST, PREV, CURRENT, SET, SET_RANGE
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test060
|
|
Test of the DB_EXCL flag to DB->open().
|
|
1) Attempt to open and create a nonexistent database; verify success.
|
|
2) Attempt to reopen it; verify failure.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test061
|
|
Test of txn abort and commit for in-memory databases.
|
|
a) Put + abort: verify absence of data
|
|
b) Put + commit: verify presence of data
|
|
c) Overwrite + abort: verify that data is unchanged
|
|
d) Overwrite + commit: verify that data has changed
|
|
e) Delete + abort: verify that data is still present
|
|
f) Delete + commit: verify that data has been deleted
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test062
|
|
Test of partial puts (using DB_CURRENT) onto duplicate pages.
|
|
Insert the first 200 words into the dictionary 200 times each with
|
|
self as key and <random letter>:self as data. Use partial puts to
|
|
append self again to data; verify correctness.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test063
|
|
Test of the DB_RDONLY flag to DB->open
|
|
Attempt to both DB->put and DBC->c_put into a database
|
|
that has been opened DB_RDONLY, and check for failure.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test064
|
|
Test of DB->get_type
|
|
Create a database of type specified by method.
|
|
Make sure DB->get_type returns the right thing with both a normal
|
|
and DB_UNKNOWN open.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test065
|
|
Test of DB->stat(DB_FASTSTAT)
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test066
|
|
Test of cursor overwrites of DB_CURRENT w/ duplicates.
|
|
|
|
Make sure a cursor put to DB_CURRENT acts as an overwrite in a
|
|
database with duplicates.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test067
|
|
Test of DB_CURRENT partial puts onto almost empty duplicate
|
|
pages, with and without DB_DUP_SORT.
|
|
|
|
Test of DB_CURRENT partial puts on almost-empty duplicate pages.
|
|
This test was written to address the following issue, #2 in the
|
|
list of issues relating to bug #0820:
|
|
|
|
2. DBcursor->put, DB_CURRENT flag, off-page duplicates, hash and btree:
|
|
In Btree, the DB_CURRENT overwrite of off-page duplicate records
|
|
first deletes the record and then puts the new one -- this could
|
|
be a problem if the removal of the record causes a reverse split.
|
|
Suggested solution is to acquire a cursor to lock down the current
|
|
record, put a new record after that record, and then delete using
|
|
the held cursor.
|
|
|
|
It also tests the following, #5 in the same list of issues:
|
|
5. DBcursor->put, DB_AFTER/DB_BEFORE/DB_CURRENT flags, DB_DBT_PARTIAL
|
|
set, duplicate comparison routine specified.
|
|
The partial change does not change how data items sort, but the
|
|
record to be put isn't built yet, and that record supplied is the
|
|
one that's checked for ordering compatibility.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test068
|
|
Test of DB_BEFORE and DB_AFTER with partial puts.
|
|
Make sure DB_BEFORE and DB_AFTER work properly with partial puts, and
|
|
check that they return EINVAL if DB_DUPSORT is set or if DB_DUP is not.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test069
|
|
Test of DB_CURRENT partial puts without duplicates-- test067 w/
|
|
small ndups to ensure that partial puts to DB_CURRENT work
|
|
correctly in the absence of duplicate pages.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test070
|
|
Test of DB_CONSUME (Four consumers, 1000 items.)
|
|
|
|
Fork off six processes, four consumers and two producers.
|
|
The producers will each put 20000 records into a queue;
|
|
the consumers will each get 10000.
|
|
Then, verify that no record was lost or retrieved twice.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test071
|
|
Test of DB_CONSUME (One consumer, 10000 items.)
|
|
This is DB Test 70, with one consumer, one producers, and 10000 items.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test072
|
|
Test of cursor stability when duplicates are moved off-page.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test073
|
|
Test of cursor stability on duplicate pages.
|
|
|
|
Does the following:
|
|
a. Initialize things by DB->putting ndups dups and
|
|
setting a reference cursor to point to each.
|
|
b. c_put ndups dups (and correspondingly expanding
|
|
the set of reference cursors) after the last one, making sure
|
|
after each step that all the reference cursors still point to
|
|
the right item.
|
|
c. Ditto, but before the first one.
|
|
d. Ditto, but after each one in sequence first to last.
|
|
e. Ditto, but after each one in sequence from last to first.
|
|
occur relative to the new datum)
|
|
f. Ditto for the two sequence tests, only doing a
|
|
DBC->c_put(DB_CURRENT) of a larger datum instead of adding a
|
|
new one.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
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(). [#303]
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test079
|
|
Test of deletes in large trees. (test006 w/ sm. pagesize).
|
|
|
|
Check that delete operations work in large btrees. 10000 entries
|
|
and a pagesize of 512 push this out to a four-level btree, with a
|
|
small fraction of the entries going on overflow pages.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
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
|
|
Basic sanity test (test001) with 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]
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test087
|
|
Test of cursor stability when converting to and modifying
|
|
off-page duplicate pages with subtransaction aborts. [#2373]
|
|
|
|
Does the following:
|
|
a. Initialize things by DB->putting ndups dups and
|
|
setting a reference cursor to point to each. Do each put twice,
|
|
first aborting, then committing, so we're sure to abort the move
|
|
to off-page dups at some point.
|
|
b. c_put ndups dups (and correspondingly expanding
|
|
the set of reference cursors) after the last one, making sure
|
|
after each step that all the reference cursors still point to
|
|
the right item.
|
|
c. Ditto, but before the first one.
|
|
d. Ditto, but after each one in sequence first to last.
|
|
e. Ditto, but after each one in sequence from last to first.
|
|
occur relative to the new datum)
|
|
f. Ditto for the two sequence tests, only doing a
|
|
DBC->c_put(DB_CURRENT) of a larger datum instead of adding a
|
|
new one.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test088
|
|
Test of cursor stability across btree splits with very
|
|
deep trees (a variant of test048). [#2514]
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test089
|
|
Concurrent Data Store test (CDB)
|
|
|
|
Enhanced CDB testing to test off-page dups, cursor dups and
|
|
cursor operations like c_del then c_get.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test090
|
|
Test for functionality near the end of the queue using test001.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test091
|
|
Test of DB_CONSUME_WAIT.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test092
|
|
Test of DB_DIRTY_READ [#3395]
|
|
|
|
We set up a database with nentries in it. We then open the
|
|
database read-only twice. One with dirty read and one without.
|
|
We open the database for writing and update some entries in it.
|
|
Then read those new entries via db->get (clean and dirty), and
|
|
via cursors (clean and dirty).
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test093
|
|
Test using set_bt_compare.
|
|
|
|
Use the first 10,000 entries from the dictionary.
|
|
Insert each with self as key and data; retrieve each.
|
|
After all are entered, retrieve all; compare output to original.
|
|
Close file, reopen, do retrieve and re-verify.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test094
|
|
Test using set_dup_compare.
|
|
|
|
Use the first 10,000 entries from the dictionary.
|
|
Insert each with self as key and data; retrieve each.
|
|
After all are entered, retrieve all; compare output to original.
|
|
Close file, reopen, do retrieve and re-verify.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test095
|
|
Bulk get test. [#2934]
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test096
|
|
Db->truncate test.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test097
|
|
Open up a large set of database files simultaneously.
|
|
Adjust for local file descriptor resource limits.
|
|
Then use the first 1000 entries from the dictionary.
|
|
Insert each with self as key and a fixed, medium length data string;
|
|
retrieve each. After all are entered, retrieve all; compare output
|
|
to original.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test098
|
|
Test of DB_GET_RECNO and secondary indices. Open a primary and
|
|
a secondary, and do a normal cursor get followed by a get_recno.
|
|
(This is a smoke test for "Bug #1" in [#5811].)
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test099
|
|
|
|
Test of DB->get and DBC->c_get with set_recno and get_recno.
|
|
|
|
Populate a small btree -recnum database.
|
|
After all are entered, retrieve each using -recno with DB->get.
|
|
Open a cursor and do the same for DBC->c_get with set_recno.
|
|
Verify that set_recno sets the record number position properly.
|
|
Verify that get_recno returns the correct record numbers.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test100
|
|
Test for functionality near the end of the queue
|
|
using test025 (DB_APPEND).
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
test101
|
|
Test for functionality near the end of the queue
|
|
using test070 (DB_CONSUME).
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
txn001
|
|
Begin, commit, abort testing.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
txn002
|
|
Verify that read-only transactions do not write log records.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
txn003
|
|
Test abort/commit/prepare of txns with outstanding child txns.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
txn004
|
|
Test of wraparound txnids (txn001)
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
txn005
|
|
Test transaction ID wraparound and recovery.
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
txn008
|
|
Test of wraparound txnids (txn002)
|
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
txn009
|
|
Test of wraparound txnids (txn003)
|