README
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:3k
- The Berkeley DB Upgrade Tests
- Quick ref:
- Running the tests:
- (in tclsh)
- % source ../test/test.tcl
- % upgrade
- Generating the test databases:
- (in tclsh)
- % source ../test/test.tcl
- % gen_upgrade /where/you/want/them
- (in your shell)
- $ cd /where/you/want/them
- $ perl $db_dir/upgrade/scripts/pack-3.0.pl
- $ mv 3.0 $db_dir/upgrade/databases
- What they are:
- The DB upgrade tests are a framework for testing two main features of
- Berkeley DB: the db_dump utility, and the "DB_UPGRADE" flag to DB->open.
- They work by taking a tarred, gzipped set of test databases and dumps, and
- verifying that the set of items is the same in the original database (as
- dumped by the version of DB that created it) as in the upgraded one,
- and is the same in the original database and in a new database generated by
- db_loading a db_dump.
- In db 3.X and higher, the upgrade test is repeated on a database with
- the opposite endianness to the system the database was generated on.
- How to generate test databases:
- Ordinarily, this is something that only very rarely has to occur;
- an archive of upgrade test databases can and should be kept, so ideally
- the generation step only needs to be done once for each major DB release.
- To generate the test databases, execute the command "gen_upgrade <dir>"
- inside a tclsh. The method tests will run twice, once for each endianness,
- and all the databases will be saved in a hierarchy named by <dir>.
- Once the databases have been built, the archives expected by the upgrade tests
- must be built using the "pack" script, in upgrade/scripts/pack-<version>.pl.
- This script must be edited slightly to specify the location on a given system
- of the DB source tree and utilities; it then converts the set of databases
- under the current working directory into a set of .tar.gz files containing
- the databases as well as flat files with their contents in item-by-item and
- db_dump formats.
- How to run the upgrade tests:
- Run "upgrade" from tclsh in the DB build directory. By default, this
- looks in upgrade/databases, in the DB source tree. An optional first argument
- can be used to specify an alternate directory.
- A note on 2.X tests:
- The 2.X packing script, as well as a patch against a 2.6.6 test directory
- to allow it to generate test databases, is in upgrade/generate-2.X.
- Note that the upgrade tests can be *run* on an the 2.X test archives
- without anything in this directory. It is provided only for
- archival reasons, in case there is ever reason to generate a new
- set of test databases.
- XXX: Note also that it quite likely has paths hard-coded for a specific
- system that is not yours.
- Known Issues:
- 1. The following 2.X databases trigger a bug in the db 2.X hash code.
- This bug affects only empty and near-empty databases, and has been
- corrected in db 3.X, but it will prevent the following from passing
- the db_dump test. (They have been removed from the canonical database
- collection.)
- 2.X hash -- test026
- 2.X hash -- test038
- 2.X hash -- test039
- 2.X hash -- test040
- 2. The 2.X recno versions of test043 cannot be made to pass the db_dump
- test because the 2.X version of db_dump has no -k flag and cannot preserve
- sparsely populated databases.