]> git.sur5r.net Git - bacula/bacula/blobdiff - regress/tests/dev-test-root
Final changes
[bacula/bacula] / regress / tests / dev-test-root
index 08c57f10cc3b575a2e84a2a24890ef53e9fb0ea8..a03287550f5e7df7f04a90c54fff83d2996ea30a 100755 (executable)
@@ -3,44 +3,44 @@
 # Run a simple backup of the Bacula build directory
 #   then restore it.
 #
-echo " "
-echo " "
-echo " === /dev save/restore test ==="
-echo " "
-echo " "
-if [ $UID != 0 ] ; then
+MUID=`/usr/bin/id -u`
+if [ $MUID != 0 ] ; then
    echo " "
    echo "You must be root to run this test."
-   echo "  ===== dev test failed!!! ===== "
-   echo "  ===== dev test failed!!! ===== " >>test.out
+   echo "  ===== !!!! dev-test-root not run !!!! ===== "
+   echo "  ===== !!!! dev-test-root not run !!!! ===== " >>test.out
    echo " "
    exit 1
 fi
 cwd=`pwd`
 scripts/copy-test-confs
+scripts/cleanup
 echo "/dev" >/tmp/file-list
-rm -rf /tmp/TestVolume001 /tmp/bacula-restores
-bin/bacula stop 2>&1 >/dev/null
-bin/drop_sqlite_tables
-bin/make_sqlite_tables
+
+echo " "
+echo " "
+echo " ===     Starting dev-test-root test       ==="
+echo " "
+echo " ===  Note, this test can fail for trivial ==="
+echo " ===  reasons on non-Linux systems.        ==="
+echo " "
+echo " "
+
 bin/bacula start 2>&1 >/dev/null
-bin/console -c bin/console.conf <<END_OF_DATA
+bin/bconsole -c bin/bconsole.conf <<END_OF_DATA
 @output /dev/null
 messages
-label storage=File
-TestVolume001
-run job=NightlySave
-yes
+@output tmp/log1.out
+label storage=File volume=TestVolume001
+run job=NightlySave yes
 wait
 messages
 @# 
 @# now do a restore
 @#
-restore
-5
-done
+@output tmp/log2.out
+restore where=${cwd}/tmp/bacula-restores select all done
 yes
-@sleep 1
 wait
 messages
 @output
@@ -49,18 +49,37 @@ END_OF_DATA
 bin/bacula stop 2>&1 >/dev/null
 cd /
 ${cwd}/bin/testls -e ${cwd}/scripts/exclude-etc-test dev >${cwd}/tmp/original
-cd /tmp/bacula-restores
+cd ${cwd}/tmp/bacula-restores
 ${cwd}/bin/testls -e ${cwd}/scripts/exclude-etc-test dev >${cwd}/tmp/restored
-diff ${cwd}/tmp/original ${cwd}/tmp/restored
+cd ${cwd}/tmp
+#
+# Use sed to cut out parts that *always* change
+#
+cat >sed.scr <<END_OF_DATA
+s%.*dev$%dev%
+s%.*[0-9][0-9]:[0-9][0-9]:[0-9][0-9] dev/ptmx%dev/ptmx%
+s%.*[0-9][0-9]:[0-9][0-9]:[0-9][0-9] dev/ttyp1%dev/ttyp1%
+s%.*[0-9][0-9]:[0-9][0-9]:[0-9][0-9] dev/null%dev/null%
+END_OF_DATA
+
+# strip file system change messages then sed and sort
+grep -v "Skip: File system change prohibited." original >1
+sed -f sed.scr 1 | sort >original
+#
+mv -f restored 1
+sed -f sed.scr 1 | sort >restored
+rm -f sed.scr
+#
+cd ${cwd}
+diff tmp/original tmp/restored 2>&1 1>/dev/null
 if [ $? != 0 ] ; then
    echo " "
    echo " "
-   echo "  ===== dev test failed!!! ===== "
-   echo "  ===== dev test failed!!! ===== " >>test.out
+   echo "  ===== !!!! dev-test-root failed !!!! ===== "
+   echo "  ===== !!!! dev-test-root failed !!!! ===== " >>test.out
    echo " "
 else
-   echo "  ===== dev test OK ===== "
-   echo "  ===== dev test OK ===== " >>test.out
-   cd ${cwd}
+   echo "  ===== dev-test-root OK ===== "
+   echo "  ===== dev-test-root OK ===== " >>test.out
    scripts/cleanup
 fi