tests/_exc-util.sh
changeset 831 a6af6919888d
parent 830 f3b3a09ba312
child 832 46e81a5d2d94
--- 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 ..
+
+}