1
2                       Bob's changeset Test Rig
3
4
5These are (one version of) the scripts we've been using to do
6"burn-in" testing on the changeset/do-changeset tools and larch's
7mkpatch/dopatch.
8
9They are not yet integrated into the configure/build system of
10this package -- you have to run them by hand.
11
12Briefly, these perform end-to-end checks on the changeset tools as
13follows:
14
15a) generate an ORIG tree with some random elements
16
17b) copy ORIG to make a MOD tree.  perform a randomly selected
18   bunch of edits on this tree (add and delete files, directories, and
19   symlinks, change file contents, rename things, etc.).
20
21c) generate a changeset from ORIG to MOD
22
23d) copy ORIG to make TARGET
24
25e) apply the changeset to TARGET
26
27f) compare MOD and TARGET
28
29g) assign ORIG = NEW-ORIG
30
31h) goto step (b)
32
33There are various parameters you can tweak in the source code (e.g.,
34changing the relatively likelihood of various edit operations).   As
35well, you test changeset/do-changeset or mkpatch/dopatch or
36mkpatch/do-changeset or changeset/do-patch.
37
38WARNING: skim the code a bit first.   There is a hard-wired path
39in run-tests.sh script -- the script will create files under that
40directory AND `rm -rf' files under that directory: so read first and
41run with caution.
42
43Thanks to Robert Anderson for writing this suite and spending a number
44of long nights on IRC as he sent me failed test cases (often carefully
45minimized by hand) and I pushed back fixes to my archive mirror.
46
47
48
49                           WHAT YOU CAN DO
50
51*) Play with the parameters and do some long test runs.
52
53*) Look for ways to verify and/or improve test case coverage.
54
55*) Work on making it portable among posix shells (e.g., don't rely
56   on $RANDOM)
57
58*) Generalize the tests to test other tagging methods.
59
60*) Derive some new tests from this to test the archive transaction
61   commands: imprev, cmtrev, tagrev, and getrev.
62
63*) Generalize the tests to test auto-changelogs
64
65*) Other clever and helpful things :-)
66
67
68# tag: Tom Lord Sat Jun  7 11:30:20 2003 (changeset-tests/README)
69#
70
71
72