X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=regress%2Ftests%2Ffour-jobs-tape;h=ff579c09a009a2616dda07176f422c52c1873ea6;hb=d3d524b80871384388c3d7cbd2df9b00d054851f;hp=b5f21b427153f590709e6a9705456025c2745108;hpb=f2f906bef8f5b7236d2f5eef14858089260f0e2e;p=bacula%2Fbacula diff --git a/regress/tests/four-jobs-tape b/regress/tests/four-jobs-tape index b5f21b4271..ff579c09a0 100755 --- a/regress/tests/four-jobs-tape +++ b/regress/tests/four-jobs-tape @@ -4,35 +4,41 @@ # then backup four times, each with incremental then finally restore. # It should require at least 4 different bsrs. # -cwd=`pwd` -bin/bacula stop 2>&1 >/dev/null -bin/drop_sqlite_tables -bin/make_sqlite_tables +TestName="four-jobs-tape" +JobName=fourjobstape +. scripts/functions + +require_tape_drive -scripts/copy-tape-confs scripts/cleanup-tape -echo "${cwd}/build" >/tmp/file-list +scripts/copy-tape-confs +echo "${cwd}/build" >${cwd}/tmp/file-list -echo " " -echo " " -echo " === Starting four-jobs-tape ===" -echo " === Starting four-jobs-tape ===" >>working/log -echo " " +change_jobname $JobName +start_test -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <${cwd}/tmp/bconcmds +@$out /dev/null +estimate job=$JobName listing +estimate job=$JobName +estimate job=$JobName messages -@output tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 -run job=NightlySave yes +@$out ${cwd}/tmp/log1.out +label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default +run job=$JobName yes wait messages quit END_OF_DATA +if test "$debug" -eq 1 ; then + bin/bacula start + cat ${cwd}/tmp/bconcmds | bin/bconsole -c bin/bconsole.conf +else + bin/bacula start 2>&1 >/dev/null + cat ${cwd}/tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null +fi + +scripts/check_for_zombie_jobs storage=DDS-4 echo "Backup 1 done" # make some files for the incremental to pick up touch ${cwd}/build/src/dird/*.c ${cwd}/build/src/dird/*.o @@ -41,79 +47,108 @@ touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o # # run a second job # -bin/bconsole -c bin/bconsole.conf <${cwd}/tmp/bconcmds +@$out /dev/null messages -@output tmp/log1.out -run job=NightlySave level=Incremental yes +@$out ${cwd}/tmp/log1.out +run job=$JobName level=Incremental yes wait messages quit END_OF_DATA +if test "$debug" -eq 1 ; then + bin/bacula start + cat ${cwd}/tmp/bconcmds | bin/bconsole -c bin/bconsole.conf +else + bin/bacula start 2>&1 >/dev/null + cat ${cwd}/tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null +fi + +scripts/check_for_zombie_jobs storage=DDS-4 echo "Backup 2 done" touch ${cwd}/build/src/dird/*.c touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o # # run a third job # -bin/bconsole -c bin/bconsole.conf <${cwd}/tmp/bconcmds +@$out /dev/null messages -@output tmp/log1.out -run job=NightlySave level=Incremental yes +@$out ${cwd}/tmp/log1.out +run job=$JobName level=Incremental yes wait messages quit END_OF_DATA +if test "$debug" -eq 1 ; then + bin/bacula start + cat ${cwd}/tmp/bconcmds | bin/bconsole -c bin/bconsole.conf +else + bin/bacula start 2>&1 >/dev/null + cat ${cwd}/tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null +fi + +scripts/check_for_zombie_jobs storage=DDS-4 echo "Backup 3 done" # make some files for the incremental to pick up touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o # # run a fourth job # -bin/bconsole -c bin/bconsole.conf <${cwd}/tmp/bconcmds +@$out /dev/null messages -@output tmp/log1.out -run job=NightlySave level=Incremental yes +@$out ${cwd}/tmp/log1.out +run job=$JobName level=Incremental yes wait messages quit END_OF_DATA +if test "$debug" -eq 1 ; then + bin/bacula start + cat ${cwd}/tmp/bconcmds | bin/bconsole -c bin/bconsole.conf +else + bin/bacula start 2>&1 >/dev/null + cat ${cwd}/tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null +fi + +scripts/check_for_zombie_jobs storage=DDS-4 echo "Backup 4 done" # # now do several restores to ensure we cleanup between jobs # -bin/bconsole -c bin/bconsole.conf <${cwd}/tmp/bconcmds +@$out /dev/null +restore where=${cwd}/tmp/bacula-restores select all done yes wait -restore where=${cwd}/tmp/bacula-restores select all +restore where=${cwd}/tmp/bacula-restores select all done yes wait -@output tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select all +@$out ${cwd}/tmp/log2.out +@# +@# now unmount the tape and start two restores +@# at the same time +@# +unmount storage=DDS-4 +restore where=${cwd}/tmp/bacula-restores select all done yes +restore where=${cwd}/tmp/bacula-restores select +unmark * +mark * +done +yes +mount storage=DDS-4 wait messages -@output +@$out 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 build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! four-jobs-tape Bacula source failed!!! !!!!! " - echo " !!!!! four-jobs-tape failed!!! !!!!! " >>test.out - echo " " -else - echo " ===== four-jobs-tape Bacula source OK ===== " - echo " ===== four-jobs-tape OK ===== " >>test.out - scripts/cleanup -fi + +run_bacula +check_for_zombie_jobs storage=DDS-4 +stop_bacula + +check_two_logs +check_restore_diff +end_test