From: Kern Sibbald Date: Wed, 10 Sep 2003 20:19:29 +0000 (+0000) Subject: Add restore-by-file test X-Git-Tag: Release-1.32~22 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=c3ea3f6b5f836981e2f211f8fa01b48f1b8b102b;p=bacula%2Fbacula Add restore-by-file test git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@697 91ce42f0-d328-0410-95d8-f526ca767f89 --- diff --git a/regress/all-non-root-tests b/regress/all-non-root-tests index b0e0823ae9..aaf2356abc 100755 --- a/regress/all-non-root-tests +++ b/regress/all-non-root-tests @@ -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" diff --git a/regress/scripts/bacula-sd-tape.conf.in b/regress/scripts/bacula-sd-tape.conf.in index dc83d01ce2..f78dcb6244 100644 --- a/regress/scripts/bacula-sd-tape.conf.in +++ b/regress/scripts/bacula-sd-tape.conf.in @@ -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 diff --git a/regress/scripts/cleanup b/regress/scripts/cleanup index 733242ba75..8bd83657e5 100755 --- a/regress/scripts/cleanup +++ b/regress/scripts/cleanup @@ -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 diff --git a/regress/scripts/do_sed b/regress/scripts/do_sed index 0b025beee8..7911e5d921 100755 --- a/regress/scripts/do_sed +++ b/regress/scripts/do_sed @@ -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 index 0000000000..77de8411f7 --- /dev/null +++ b/regress/tests/restore-by-file-test @@ -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 <&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