#!/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 but # split the archive into two volumes, then restore # files on only one of the volumes and ensure that # the other volume is not used. I.e. bsr optimization # works. # TestName="bsr-opt-test" JobName=bsr-opt . scripts/functions scripts/cleanup scripts/copy-test-confs echo "${cwd}/build" >${cwd}/tmp/file-list change_jobname NightlySave $JobName start_test MaxVolBytes=3000000 cat <${cwd}/tmp/bconcmds @$out /dev/null messages @$out ${cwd}/tmp/log1.out label storage=File1 volume=TestVolume001 label storage=File1 volume=TestVolume002 update Volume=TestVolume001 MaxVolBytes=$MaxVolBytes run job=$JobName storage=File1 yes wait messages @# @# now do a restore @# @$out ${cwd}/tmp/log2.out setdebug level=150 storage=File1 trace=1 restore bootstrap=${cwd}/working/restore.bsr where=${cwd}/tmp/bacula-restores select storage=File1 unmark * cd ${cwd}/build/src/cats mark * ls done yes wait messages quit END_OF_DATA run_bacula check_for_zombie_jobs storage=File1 stop_bacula # # This test is not really reliable. What we want to do is # to select files on only one Volume, then insure here # that only one Volume is chosen. # grep TestVolume002 working/restore.bsr 2>&1 >/dev/null bsrstat=$? check_two_logs diff -r build/src/cats ${cwd}/tmp/bacula-restores${cwd}/build/src/cats 2>&1 >/dev/null if [ $? != 0 -o $bsrstat != 0 -o $bstat != 0 -o $rstat != 0 ] ; then echo " " echo " " echo " !!!!! bsr-opt-test Bacula source failed!!! !!!!! " echo " !!!!! bsr-opt-test failed!!! !!!!! " >>test.out if [ $bstat != 0 -o $rstat != 0 ] ; then echo " !!!!! Bad Job termination status !!!!! " echo " !!!!! Bad Job termination status !!!!! " >>test.out elif [ $bsrstat != 0 ] ; then echo " !!!!! Volume selection error !!!!! " echo " !!!!! Volume selection error !!!!! " >>test.out else echo " !!!!! Restored files differ !!!!! " echo " !!!!! Restored files differ !!!!! " >>test.out fi echo " " exit 1 else echo " ===== bsr-opt-test Bacula source OK `date +%R:%S` ===== " echo " ===== bsr-opt-test OK `date +%R:%S` ===== " >>test.out scripts/cleanup fi