diff options
author | W. Trevor King <wking@drexel.edu> | 2008-11-18 20:42:50 -0500 |
---|---|---|
committer | W. Trevor King <wking@drexel.edu> | 2008-11-18 20:42:50 -0500 |
commit | 19b153b9a86377a2b30cc80fa3f475fed892e2fe (patch) | |
tree | 8f5688707ab1b34ffec2bc4372d087580ff21709 /test_usage.sh | |
parent | e4018dfe8cfa553adbd20898c5b42c3462ca1733 (diff) | |
download | bugseverywhere-19b153b9a86377a2b30cc80fa3f475fed892e2fe.tar.gz |
Major rewrite of RCS backends. RCS now represented as a class.
Lots of changes and just one commit. This started with bug
dac91856-cb6a-4f69-8c03-38ff0b29aab2, when I noticed that new bugs
were not being added appropriately with the Git backend. I'd been
working with Git trouble before with bug
0cad2ac6-76ef-4a88-abdf-b2e02de76f5c, and decided things would be
better off if I just scrapped the current RCS architecture and went to
a more object oriented setup. So I did. It's not clear how to add
support for an RCS backend:
* Create a new module that
- defines an inheritor of rsc.RCS, overriding the _rcs_*() methods
- provide a new() function for instantizating the new class
- defines an inheritor of rcs.RCStestCase, overiding the Class attribute
- defines 'suite' a unittest.TestSuite testing the module
* Add your new module to the rest in rcs._get_matching_rcs()
* Add your new module to the rest in libbe/tests.py
Although I'm not sure libbe/tests.py is still usefull.
The new framework clears out a bunch of hackery that used to be
involved with supporting becommands/diff.py. There's still room for
progress though. While implementing the new verision, I moved the
testing framework over from doctest to a doctest/unittest combination.
Longer tests that don't demonstrate a function's usage should be moved
to unittests at the end of the module, since unittest has better
support for setup/teardown, etc.
The new framework also revealed some underimplented backends, most
notably arch. These backends have now been fixed.
I also tweaked the test_usage.sh script to run through all the backends
if it is called with no arguments.
The fix for the dac bug turned out to be an unflushed file write :p.
Diffstat (limited to 'test_usage.sh')
-rwxr-xr-x | test_usage.sh | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/test_usage.sh b/test_usage.sh index 26acce1..bba21ee 100755 --- a/test_usage.sh +++ b/test_usage.sh @@ -7,6 +7,9 @@ # usage: test_usage.sh RCS # where RCS is one of: # bzr, git, hg, arch, none +# +# Note that this script uses the *installed* version of be, not the +# one in your working tree. set -e # exit imediately on failed command set -o pipefail # pipes fail if any stage fails @@ -15,9 +18,9 @@ set -v # verbose, echo commands to stdout exec 6>&2 # save stderr to file descriptor 6 exec 2>&1 # fd 2 now writes to stdout -if [ $# -ne 1 ] +if [ $# -gt 1 ] then - echo "usage: test_usage.sh RCS" + echo "usage: test_usage.sh [RCS]" echo "" echo "where RCS is one of" for RCS in bzr git hg arch none @@ -25,6 +28,14 @@ then echo " $RCS" done exit 1 +elif [ $# -eq 0 ] +then + for RCS in bzr git hg arch none + do + echo -e "\n\nTesting $RCS\n\n" + $0 "$RCS" || exit 1 + done + exit 0 fi RCS="$1" @@ -54,7 +65,7 @@ elif [ "$RCS" == "none" ] then ID=`id -nu` else - echo "Unrecognized RCS $RCS" + echo "Unrecognized RCS '$RCS'" exit 1 fi if [ -z "$ID" ] @@ -84,6 +95,7 @@ be list -m -s fixed # see fixed bugs assigned to you be assign $BUG 'Joe' # assign the bug to Joe be list -a Joe -s fixed # list the fixed bugs assigned to Joe be assign $BUG none # assign the bug to noone +be diff # see what has changed be remove $BUG # decide that you don't like that bug after all cd / rm -rf $TESTDIR |