--- a/tests/_exc-util.sh Mon Mar 03 13:27:53 2014 -0800
+++ b/tests/_exc-util.sh Mon Mar 03 14:03:41 2014 -0800
@@ -38,3 +38,58 @@
hg clone -q main pulldest
echo 'cd into `main` and proceed with env setup'
}
+
+dotest() {
+# dotest TESTNAME [TARGETNODE]
+
+ testcase=$1
+ target="$2"
+ targetnode=""
+ desccall=""
+ cd $testcase
+ echo "## Running testcase $testcase"
+ if [ -n "$target" ]; then
+ desccall="desc("\'"$target"\'")"
+ targetnode="`hg -R main id -qr \"$desccall\"`"
+ echo "# testing echange of \"$target\" ($targetnode)"
+ fi
+ echo "## initial state"
+ echo "# obstore: main"
+ hg -R main debugobsolete
+ echo "# obstore: pushdest"
+ hg -R pushdest debugobsolete
+ echo "# obstore: pulldest"
+ hg -R pulldest debugobsolete
+
+ if [ -n "$target" ]; then
+ echo "## pushing \"$target\"" from main to pushdest
+ hg -R main push -r "$desccall" pushdest
+ else
+ echo "## pushing from main to pushdest"
+ hg -R main push pushdest
+ fi
+ echo "## post push state"
+ echo "# obstore: main"
+ hg -R main debugobsolete
+ echo "# obstore: pushdest"
+ hg -R pushdest debugobsolete
+ echo "# obstore: pulldest"
+ hg -R pulldest debugobsolete
+ if [ -n "$target" ]; then
+ echo "## pulling \"$targetnode\"" from main into pulldest
+ hg -R pulldest pull -r $targetnode main
+ else
+ echo "## pulling from main into pulldest"
+ hg -R pulldest pull main
+ fi
+ echo "## post pull state"
+ echo "# obstore: main"
+ hg -R main debugobsolete
+ echo "# obstore: pushdest"
+ hg -R pushdest debugobsolete
+ echo "# obstore: pulldest"
+ hg -R pulldest debugobsolete
+
+ cd ..
+
+}