X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=regress%2Ftests%2Fbsr-read-test;h=5d0003d11a5499fff2b570a9cc0e6a87f08c2665;hb=b3d16d6c193ef2f61f7cc3fbefc72a8c8b1b79d8;hp=8f6667e33695a13aab625f7b30ecec6e0a4cf7a9;hpb=4aa873ec9bbb6c63f39327d56eaff384594cc9a5;p=bacula%2Fbacula diff --git a/regress/tests/bsr-read-test b/regress/tests/bsr-read-test index 8f6667e336..5d0003d11a 100755 --- a/regress/tests/bsr-read-test +++ b/regress/tests/bsr-read-test @@ -2,28 +2,30 @@ # # Run a backup of a small file, then do several other backups # to expand the size of a volume. Then do a restore of the first -# file, and make sure it does read to the end of the disk. +# file, and make sure it doesn't read to the end of the disk. # TestName="bsr-read-test" JobName=bsr-read . scripts/functions scripts/cleanup -scripts/copy-test-confs -echo "${cwd}/build/configure" >${cwd}/tmp/file-list +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 -update Volume=TestVolume001 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 @@ -48,16 +50,37 @@ messages run job=$JobName level=Full yes wait messages +run job=$JobName level=Full yes +wait +messages +run job=$JobName level=Full yes +wait +messages @# @# now do a restore @# @$out ${cwd}/tmp/log2.out -setdebug level=30 fd -setdebug level=500 storage=File +setdebug level=30 trace=1 fd +setdebug level=500 trace=1 storage=File sql @# print the JobMedia records select * from JobMedia; +@# +@# now do a restore +@# +restore +3 +2 +mark * +done +yes +wait +messages +@# +@# now do a restore +@# +@$out ${cwd}/tmp/log3.out restore 3 1 @@ -66,7 +89,20 @@ 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 @@ -77,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