]> git.sur5r.net Git - bacula/bacula/blobdiff - regress/tests/relabel-tape
Make out of freespace non-fatal for removable devices -- i.e. behaves like tape
[bacula/bacula] / regress / tests / relabel-tape
index b90c16e9e2616864c2a79b27baf91c6f002ef086..39023ad082b26a79fe9938f1897c4c06246571fe 100755 (executable)
@@ -1,85 +1,86 @@
 #!/bin/sh
+#
+# Copyright (C) 2000-2015 Kern Sibbald
+# License: BSD 2-Clause; see file LICENSE-FOSS
+#
+
 #
 # Run a simple backup of the Bacula build directory using the compressed option
 #   then backup four times, each with incremental then finally restore.
 #   It should require at least 4 different bsrs.
 #
-debug=0
-if test "$debug" -eq 1 ; then
-  out="tee"
-else
-  out="output"
-fi
+TestName="relabel-tape"
+JobName=Relabeltape
+. scripts/functions
+
+require_tape_drive
 
-cwd=`pwd`
-scripts/copy-tape-confs
 scripts/cleanup-tape
-echo "${cwd}/build" >/tmp/file-list
+scripts/copy-tape-confs
 
-echo " "
-echo " "
-echo " === Starting relabel-tape at `date +%R:%S` ==="
-echo " === Starting relabel-tape at `date +%R:%S` ===" >>working/log
-echo " "
+echo "${cwd}/build" >${cwd}/tmp/file-list
 
-cat <<END_OF_DATA >tmp/bconcmds
-@output /dev/null
+change_jobname $JobName
+start_test
+
+cat <<END_OF_DATA >${cwd}/tmp/bconcmds
+@$out /dev/null
 messages
-@$out tmp/log1.out
-label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default
-run job=NightlySave level=Full yes
+@$out ${cwd}/tmp/log1.out
+setdebug level=150 storage=tape
+label storage=tape volume=TestVolume001 slot=0 pool=Default
+run job=$JobName level=Full yes
 wait
 messages
-add pool=Default
+add pool=Default storage=tape
 0
 TestVolume002
 @# set status to append
 update volume=TestVolume001
 1
 .
-run job=NightlySave level=Full yes
-@sleep 20
-unmount
-unmount
+run job=$JobName level=Full yes
+wait
+list volumes
+unmount storage=tape
+unmount storage=tape
 purge volume=TestVolume001
-relabel oldvolume=TestVolume001 volume=TestVolume003 slot=0 pool=Default
+relabel oldvolume=TestVolume001 volume=TestVolume003 slot=0 pool=Default storage=tape
 list volumes
-mount
+mount storage=tape
 messages
 wait
-run job=NightlySave level=Full yes
+run job=$JobName level=Full yes
 wait
+list volumes
 messages
-@$out
 quit
 END_OF_DATA
 
-if test "$debug" -eq 1 ; then
-  bin/bacula start
-  cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf
-else
-  bin/bacula start 2>&1 >/dev/null
-  cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf  2>&1 >/dev/null
-fi
+run_bacula
+check_for_zombie_jobs storage=tape
+
 
-echo "Backup done"
 # 
 # now do several restores to ensure we cleanup between jobs
 #
-cat <<END_OF_DATA >tmp/bconcmds
-@$out /dev/null
+cat <<END_OF_DATA >${cwd}/tmp/bconcmds
+@$out ${cwd}/tmp/log2.out
+setdebug level=150 storage=tape
+list volumes
 restore where=${cwd}/tmp/bacula-restores select all done
 yes
 wait
 restore where=${cwd}/tmp/bacula-restores select all done
 yes
 wait
-@$out tmp/log2.out
+@$out ${cwd}/tmp/log2.out
 @#
 @# now unmount the tape and start two restores
 @#  at the same time
 @#
-unmount storage=DDS-4
+list volumes
+unmount storage=tape
 restore where=${cwd}/tmp/bacula-restores select all done
 yes
 restore where=${cwd}/tmp/bacula-restores select
@@ -87,36 +88,17 @@ unmark *
 mark *
 done
 yes
-mount storage=DDS-4
+mount storage=tape
 wait
 messages
-@$out
 quit
 END_OF_DATA
 
-if test "$debug" -eq 1 ; then
-  cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf
-else
-  cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf  2>&1 >/dev/null
-fi
+run_bconsole
+
+check_for_zombie_jobs storage=tape
+stop_bacula
 
-scripts/check_for_zombie_jobs storage=DDS-4
-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 build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null
-dstat=$?
-if [ $dstat != 0 -o $bstat != 0 -o $rstat != 0 ] ; then
-   echo " "
-   echo " "
-   echo "  !!!!! relabel-tape Bacula source failed!!! !!!!! "
-   echo "  !!!!! relabel-tape failed!!! !!!!! " >>test.out
-   echo "diff=$dstat backup=$bstat restore=$rstat"
-   echo " "
-else
-   echo "  ===== relabel-tape Bacula source OK ===== "
-   echo "  ===== relabel-tape OK ===== " >>test.out
-   scripts/cleanup
-fi
+check_two_logs
+check_restore_diff
+end_test