-echo "Test 1 basic operation"
-rsync -av testin/ ${TMP}/rsync
-diff -ur testin/ ${TMP}/rsync
-pause
-
-echo "Test 2 - one file"
-rm ${TMP}/rsync/${F1}
-rsync -av testin/ ${TMP}/rsync
-diff -ur testin/ ${TMP}/rsync
-pause
-
-echo "Test 3 - extra data"
-echo "extra line" >> ${TMP}/rsync/${F1}
-rsync -av testin/ ${TMP}/rsync
-diff -ur testin/ ${TMP}/rsync
-pause
-
-echo "Test 4 - --delete"
-cp testin/${F1} ${TMP}/rsync/f1
-rsync --delete -av testin/ ${TMP}/rsync
-diff -ur testin/ ${TMP}/rsync
-pause
-
-echo "Test 5 (uses ssh, so will fail if you don't have it) "
-rm -rf ${TMP}/rsync
-rsync -av -e ssh testin/ localhost:${TMP}/rsync
-diff -ur testin/ ${TMP}/rsync
-pause
-
-echo "Test 6 (uses ssh, so will fail if you don't have it) "
-mv ${TMP}/rsync/${F1} ${TMP}/rsync/f1
-rsync --delete -av -e ssh testin/ localhost:${TMP}/rsync
-diff -ur testin/ ${TMP}/rsync
-pause
-
-rm -rf ${TMP}
-
-echo Tests Completed
+# Main script starts here
+
+checkit "rsync -av ${FROM}/ ${TO}" ${FROM}/ ${TO} \
+ 1 "basic operation"
+
+ln ${FROM}/pslist ${FROM}/dir
+checkit "rsync -avH ${FROM}/ ${TO}" ${FROM}/ ${TO} \
+ 2 "hard links"
+
+rm ${TO}/${F1}
+checkit "rsync -avH ${FROM}/ ${TO}" ${FROM}/ ${TO} \
+ 3 "one file"
+
+echo "extra line" >> ${TO}/${F1}
+checkit "rsync -avH ${FROM}/ ${TO}" ${FROM}/ ${TO} \
+ 4 "extra data"
+
+cp ${FROM}/${F1} ${TO}/ThisShouldGo
+checkit "rsync --delete -avH ${FROM}/ ${TO}" ${FROM}/ ${TO} \
+ 5 " --delete"
+
+if type ssh >/dev/null ; then
+rm -rf ${TO}
+ checkit "rsync -avH -e ssh ${FROM}/ localhost:${TO}" ${FROM}/ ${TO} \
+ 6 "ssh: basic test"
+
+ mv ${TO}/${F1} ${TO}/ThisShouldGo
+ checkit "rsync --delete -avH -e ssh ${FROM}/ localhost:${TO}" ${FROM}/ ${TO}\
+ 7 "ssh: renamed file"
+else
+ echo ""
+ echo "**** Skipping SSH tests because ssh is not in the path\a ****"
+ echo ""
+fi
+
+checkforlogs ${LOG}.?
+