]> git.sur5r.net Git - bacula/bacula/commitdiff
Add restore-by-file test
authorKern Sibbald <kern@sibbald.com>
Wed, 10 Sep 2003 20:19:29 +0000 (20:19 +0000)
committerKern Sibbald <kern@sibbald.com>
Wed, 10 Sep 2003 20:19:29 +0000 (20:19 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@697 91ce42f0-d328-0410-95d8-f526ca767f89

regress/all-non-root-tests
regress/scripts/bacula-sd-tape.conf.in
regress/scripts/cleanup
regress/scripts/do_sed
regress/tests/restore-by-file-test [new file with mode: 0755]

index b0e0823ae9cabd7e73922ff4372cab5b2a9ea133..aaf2356abc69f3eb0ba79d4f7583b3b973c40624 100755 (executable)
@@ -20,6 +20,7 @@ tests/bsr-opt-test
 tests/bextract-test
 tests/recycle-test
 tests/span-vol-test
+tests/restore-by-file-test
 echo " "
 echo " "
 echo "Test results"
index dc83d01ce2940ba2369ea8951f2edc336072288e..f78dcb6244bbb66893fbccebf42d8c43a3e75dd8 100644 (file)
@@ -35,7 +35,7 @@ Director {
 Device {
   Name = DDS-4                     # 
   Media Type = DDS-4
-  Changer Device = /dev/sg0
+  Changer Device = @autochanger@
   Changer Command ="@scriptdir@/mtx-changer %c %o %S %a"
   Archive Device = @tape_drive@
   AutomaticMount = yes;               # when device opened, read it
index 733242ba757c611a4645da96bb6b475bc07ca1f1..8bd83657e558507d08c9b3352a151233f4fd20d9 100755 (executable)
@@ -6,3 +6,4 @@ rm -rf /tmp/TestVolume001 /tmp/bacula-restores /tmp/Small*
 rm -rf tmp/original tmp/bacula-restores tmp/Small* tmp/TestVolume*
 rm -rf tmp/restored tmp/largefile tmp/bscan.bsr tmp/log*.out
 rm -rf /tmp/sed_tmp /tmp/file-list
+rm -rf tmp/build tmp/restore-list
index 0b025beee882297f6fba37254caae6fd0f248a8c..7911e5d921eb81dfcc867481890fef7edc36d832 100755 (executable)
@@ -1,8 +1,9 @@
 #!/bin/sh
 #
-if test $# != 2 ; then
+if test $# != 3 ; then
    echo "First arg must be email name"
    echo "  and the second must be a tape drive"
+   echo "  and the third must be a tape control name or /dev/null"
    exit 1
 fi
 out="/tmp/sed_tmp"
@@ -19,6 +20,7 @@ echo "s%@piddir@%${cwd}/working%g" >>${out}
 echo "s%@subsysdir@%${cwd}/working%g" >>${out}
 echo "s%@job_email@%${1}%g" >>${out}
 echo "s%@tape_drive@%${2}%g" >>${out}
+echo "s%@autochanger@%${3}%g" >>${out}
 echo "s%@tmpdir@%${cwd}/tmp%g" >>${out}
 echo "s%@hostname@%${host}%g" >>${out}
 
diff --git a/regress/tests/restore-by-file-test b/regress/tests/restore-by-file-test
new file mode 100755 (executable)
index 0000000..77de841
--- /dev/null
@@ -0,0 +1,67 @@
+#!/bin/sh
+#
+# Run a simple backup of the Bacula build directory using the compressed option
+#   then restore it.
+#
+cwd=`pwd`
+scripts/copy-test-confs
+scripts/cleanup
+echo "${cwd}/tmp/build" >/tmp/file-list
+mkdir ${cwd}/tmp/build
+cp -p ${cwd}/build/src/dird/*.c ${cwd}/tmp/build
+cd ${cwd}/tmp/build
+ls >../1
+cd ..
+sed s%^%${cwd}/tmp/build/% 1 >restore-list
+rm -f 1
+cd ${cwd}
+bin/bacula stop  2>&1 >/dev/null
+bin/drop_sqlite_tables
+bin/make_sqlite_tables
+
+echo " "
+echo " "
+echo " === Starting restore-by-file-test ==="
+echo " === Starting restore-by-file-test ===" >>working/log
+echo " "
+
+bin/bacula start 2>&1 >/dev/null
+bin/console -c bin/console.conf <<END_OF_DATA
+@output /dev/null
+messages
+@output tmp/log1.out
+label storage=File volume=TestVolume001
+run job=CompressedTest yes
+wait
+messages
+@# 
+@# now do a restore
+@#
+@output tmp/log2.out
+restore
+7
+<${cwd}/tmp/restore-list
+
+yes
+wait
+messages
+@output
+quit
+END_OF_DATA
+bin/bacula stop 2>&1 >/dev/null
+grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null
+bstat=$?
+grep "^Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null
+rstat=$?
+diff -r tmp/build /tmp/bacula-restores${cwd}/tmp/build
+if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then
+   echo " "
+   echo " "
+   echo "  !!!!! restore-by-file-test Bacula source failed!!! !!!!! "
+   echo "  !!!!! restore-by-file-test failed!!! !!!!! " >>test.out
+   echo " "
+else
+   echo "  ===== restore-by-file-test Bacula source OK ===== "
+   echo "  ===== restore-by-file-test OK ===== " >>test.out
+   scripts/cleanup
+fi