X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=regress%2Ftests%2Fbsr-read-test;h=5d0003d11a5499fff2b570a9cc0e6a87f08c2665;hb=b3d16d6c193ef2f61f7cc3fbefc72a8c8b1b79d8;hp=a45a93cc8e490d57b31965e862a09417c75e0ae4;hpb=bb48a36280bc2c28abcd2346a867620a53b14284;p=bacula%2Fbacula diff --git a/regress/tests/bsr-read-test b/regress/tests/bsr-read-test index a45a93cc8e..5d0003d11a 100755 --- a/regress/tests/bsr-read-test +++ b/regress/tests/bsr-read-test @@ -9,25 +9,23 @@ JobName=bsr-read . scripts/functions scripts/cleanup -scripts/copy-test-confs +scripts/copy-migration-confs +scripts/prepare-disk-changer + cp ${cwd}/build/configure ${cwd}/tmp cat ${cwd}/build/configure >> ${cwd}/tmp/configure echo "${cwd}/tmp/configure" >${cwd}/tmp/file-list echo "${cwd}/build" >>${cwd}/tmp/file-list - -change_jobname CompressedTest $JobName +change_jobname NightlySave $JobName start_test cat <${cwd}/tmp/bconcmds @$out /dev/null messages @$out ${cwd}/tmp/log1.out -label storage=File volume=TestVolume001 -label storage=File volume=TestVolume002 -label storage=File volume=TestVolume003 -update Volume=TestVolume001 maxvolbytes=120000 -update Volume=TestVolume002 maxvolbytes=120000 +label storage=DiskChanger volume=ChangerVolume001 slot=1 Pool=Full drive=0 +label storage=File volume=TestVolume001 pool=Default run job=$JobName yes wait messages @@ -55,6 +53,9 @@ messages run job=$JobName level=Full yes wait messages +run job=$JobName level=Full yes +wait +messages @# @# now do a restore @# @@ -65,27 +66,43 @@ sql @# print the JobMedia records select * from JobMedia; +@# +@# now do a restore +@# restore 3 -1 +2 mark * done yes wait messages @# -@# now do a restore of the second job (to compare offset) +@# now do a restore @# @$out ${cwd}/tmp/log3.out restore 3 -2 +1 mark * done yes wait messages +restore all +3 +3 +done +yes +wait +messages @$out +update volume=TestVolume001 volstatus=Used +run job=migrate-job jobid=1 yes +run job=migrate-job jobid=2 yes +run job=migrate-job jobid=3 yes +wait +messages quit END_OF_DATA @@ -96,4 +113,42 @@ stop_bacula check_two_logs # check_restore_tmp_build_diff dstat=0 + +perl -ne ' +sub check_block { + return unless ($last_block || $last_bsr_block); + $nb = $last_block - $last_bsr_block; + if ($nb > 65000) { + print "ERROR: read too many bytes $nb\n"; + } +} +sub print_stat { + if ($last_bsr_addr) { + $last_bsr_block = $last_bsr_addr & 0xFFFFFFFF; + } + print "$last_job\nlast_bsr_block=$last_bsr_block last_block_read=$last_block\n"; + check_block(); + $last_bsr_block = $last_block=0; +} + +if (/dircmd.c.+(JobId=\d+ job=\S+) .+client_name=.+-fd/) { + if ($last_job) { + print_stat(); + } +} + +$last_job=$1 if /dircmd.c.+(JobId=\d+ job=\S+)/; +$last_bsr_addr=$1 if /fd_cmds.c:.+VolAddr=\d+-(\d+)/; +$last_bsr_block=$1 if /fd_cmds.c:.+VolBlock=\d+-(\d+)/; +$last_block=$1 if /read_record.c.+file:block=\d+:(\d+)/; +END { + print_stat(); +}' working/*-sd.trace > tmp/result + +grep ERROR tmp/result > /dev/null +if [ $? -eq 0 ]; then + rstat=2 + cat tmp/result +fi + end_test