X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=regress%2Ftests%2Frestore-disk-seek-test;h=38fc0f7b7ba781e30fbb43bcb2b19df6d93c1256;hb=cdae8931ba557fe18fa330660b6e47a09c4e5b5a;hp=987bb12873e473e5a9dc18a45c1ac85fa5a254af;hpb=63b7dc63b83d3261dd467cc2e0c2504aba0b8a03;p=bacula%2Fbacula diff --git a/regress/tests/restore-disk-seek-test b/regress/tests/restore-disk-seek-test index 987bb12873..38fc0f7b7b 100755 --- a/regress/tests/restore-disk-seek-test +++ b/regress/tests/restore-disk-seek-test @@ -6,89 +6,88 @@ # match. Even though disk seeking is not yet enabled, this is a good test, # and once it is enabled, this will test it. # -cwd=`pwd` -scripts/copy-test-confs +TestName="restore-disk-seek-test" +JobName=restore-disk-seek +. scripts/functions + scripts/cleanup -echo "${cwd}/tmp/build" >/tmp/file-list +scripts/copy-test-confs +echo "${cwd}/tmp/build" >${cwd}/tmp/file-list rm -rf ${cwd}/tmp/build mkdir ${cwd}/tmp/build # Copy only the .c files (to be restored) -cp -p ${cwd}/build/src/dird/*.c ${cwd}/tmp/build +# set files to "*.c" for all c files +files="ua_tree.c ua_update.c" +# files="*.c" +for i in ${files}; do + cp -p ${cwd}/build/src/dird/${i} ${cwd}/tmp/build +done cd ${cwd}/tmp/build ls >../1 cd .. -sed s%\^%${cwd}/tmp/build/% 1 >restore-list +sed s%\^%${cwd}/tmp/build/% 1 | sort | uniq >restore-list +# # At this point restore-list contains the list # of files we will restore +# rm -f 1 cd ${cwd} -# Now backup *everything* +# +# Now arrange to backup *everything* +# rm -rf ${cwd}/tmp/build mkdir ${cwd}/tmp/build cp -fp ${cwd}/build/src/dird/* ${cwd}/tmp/build -# Enable MaximumFileSize +# +# Enable MaximumFileSize to ensure lots of JobMedia records and thus +# lots of seeking +# cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 sed "s%# Maximum File Size% Maximum File Size%" ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf -echo " " -echo " " -echo " === Starting restore-disk-seek-test `date +%R:%S` ===" -echo " === Starting restore-disk-seek-test `date +%R:%S` ===" >>working/log -echo " " +change_jobname CompressedTest $JobName +start_test -bin/bacula start -v -v 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <${cwd}/tmp/bconcmds +@$out /dev/null messages -@output tmp/log1.out +@$out ${cwd}/tmp/log1.out label storage=File volume=TestVolume001 -run job=CompressedTest yes +run job=$JobName yes wait messages @# @# now do a restore @# -@output tmp/log2.out +@$out ${cwd}/tmp/log2.out +setdebug level=30 fd +setdebug level=11 storage=File sql +@# print the JobMedia records select * from JobMedia; -restore where=${cwd}/tmp/bacula-restores storage=File +restore bootstrap=${cwd}/tmp/kern.bsr where=${cwd}/tmp/bacula-restores storage=File 7 <${cwd}/tmp/restore-list yes wait messages -@output +@$out quit END_OF_DATA -scripts/check_for_zombie_jobs storage=File -bin/bacula stop 2>&1 >/dev/null + +run_bacula +check_for_zombie_jobs storage=File +stop_bacula + # Now setup a control directory of only what we *should* restore rm -rf ${cwd}/tmp/build mkdir ${cwd}/tmp/build -cp -p ${cwd}/build/src/dird/*.c ${cwd}/tmp/build -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 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! restore-disk-seek-test Bacula source failed!!! !!!!! " - echo " !!!!! restore-disk-seek-test failed!!! !!!!! " >>test.out - if [ $bstat != 0 -o $rstat != 0 ] ; then - echo " !!!!! Bad Job termination status !!!!! " - echo " !!!!! Bad Job termination status !!!!! " >>test.out - else - echo " !!!!! Restored files differ !!!!! " - echo " !!!!! Restored files differ !!!!! " >>test.out - fi - echo " " -else - echo " ===== restore-disk-seek-test Bacula source OK ===== " - echo " ===== restore-disk-seek-test OK ===== " >>test.out -# scripts/cleanup -# rm -rf ${cwd}/tmp/build -fi +for i in ${files}; do + cp -p ${cwd}/build/src/dird/${i} ${cwd}/tmp/build +done + +check_two_logs +check_restore_tmp_build_diff +end_test