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