Files in directory /lsm-test of check-in 50e87e23bb8e0c0a
- lsmtest.h
- lsmtest1.c
- lsmtest2.c
- lsmtest3.c
- lsmtest4.c
- lsmtest5.c
- lsmtest6.c
- lsmtest7.c
- lsmtest_datasource.c
- lsmtest_func.c
- lsmtest_io.c
- lsmtest_main.c
- lsmtest_mem.c
- lsmtest_tdb.c
- lsmtest_tdb.h
- lsmtest_tdb2.cc
- lsmtest_tdb3.c
- lsmtest_util.c
- README
Organization of test case files:
lsmtest1.c: Data tests. Tests that perform many inserts and deletes on a
database file, then verify that the contents of the database can
be queried.
lsmtest2.c: Crash tests. Tests that attempt to verify that the database
recovers correctly following an application or system crash.
lsmtest3.c: Rollback tests. Tests that focus on the explicit rollback of
transactions and sub-transactions.
lsmtest4.c: Multi-client tests.
lsmtest5.c: Multi-client tests with a different thread for each client.
lsmtest6.c: OOM injection tests.
lsmtest7.c: API tests.
Test case structure:
Single client operations tests:
1. Data source.
2. Database system (either an LSM configuration or a foreign system).
3. Fault injection:
+ Crash,
+ IO error,
+ OOM condition.
4. Close/reopen test.
How do we add, to the above structure, a test for a checkpoint larger than
4KB (generated by causing the free-list to be very long).