summaryrefslogtreecommitdiff
path: root/bdb/test/upgrade/README
diff options
context:
space:
mode:
Diffstat (limited to 'bdb/test/upgrade/README')
-rw-r--r--bdb/test/upgrade/README85
1 files changed, 85 insertions, 0 deletions
diff --git a/bdb/test/upgrade/README b/bdb/test/upgrade/README
new file mode 100644
index 00000000000..1afada2ecf4
--- /dev/null
+++ b/bdb/test/upgrade/README
@@ -0,0 +1,85 @@
+ 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.