aboutsummaryrefslogtreecommitdiffstats
path: root/test_usage.sh
diff options
context:
space:
mode:
authorW. Trevor King <wking@drexel.edu>2008-11-18 20:42:50 -0500
committerW. Trevor King <wking@drexel.edu>2008-11-18 20:42:50 -0500
commit19b153b9a86377a2b30cc80fa3f475fed892e2fe (patch)
tree8f5688707ab1b34ffec2bc4372d087580ff21709 /test_usage.sh
parente4018dfe8cfa553adbd20898c5b42c3462ca1733 (diff)
downloadbugseverywhere-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-xtest_usage.sh18
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