From: Kern Sibbald Date: Sat, 3 May 2008 09:06:53 +0000 (+0000) Subject: Enhanced error detection of disk-changer and new 2drive-swap-test X-Git-Tag: Release-7.0.0~4655 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=0e92b54a47e84b9831a2cd719dde93411cc64e6b;p=bacula%2Fbacula Enhanced error detection of disk-changer and new 2drive-swap-test git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@6884 91ce42f0-d328-0410-95d8-f526ca767f89 --- diff --git a/regress/DartTestfile.txt.in b/regress/DartTestfile.txt.in index 71dbbc8c08..1b2a5908d9 100644 --- a/regress/DartTestfile.txt.in +++ b/regress/DartTestfile.txt.in @@ -45,6 +45,7 @@ ADD_TEST(disk:strip-test "@regressdir@/tests/strip-test") ADD_TEST(disk:2drive-3pool-test "@regressdir@/tests/2drive-3pool-test") ADD_TEST(disk:2drive-concurrent-test "@regressdir@/tests/2drive-concurrent-test") ADD_TEST(disk:2drive-incremental-2disk "@regressdir@/tests/2drive-incremental-2disk") +ADD_TEST(disk:2drive-swap-test "@regressdir@/tests/2drive-swap-test") ADD_TEST(disk:2drive-2job-test "@regressdir@/tests/2drive-2job-test") ADD_TEST(disk:three-pool-test "@regressdir@/tests/three-pool-test") ADD_TEST(disk:tls-test "@regressdir@/tests/tls-test") diff --git a/regress/all-disk-tests b/regress/all-disk-tests index 9c027c6d67..e04d4d9f24 100755 --- a/regress/all-disk-tests +++ b/regress/all-disk-tests @@ -76,5 +76,6 @@ nice tests/2drive-concurrent-test nice tests/incremental-2media nice tests/three-pool-test nice tests/2drive-3pool-test +nice tests/2drive-swap-test echo "End non-root virtual disk autochanger tests" echo "End non-root virtual disk autochanger tests" >>test.out diff --git a/regress/tests/2drive-swap-test b/regress/tests/2drive-swap-test new file mode 100755 index 0000000000..a1eb027c11 --- /dev/null +++ b/regress/tests/2drive-swap-test @@ -0,0 +1,77 @@ +#!/bin/sh +# +# Set prefer mounted volumes to no to try to force use of +# the drive swap code. +# +# This script uses the virtual disk autochanger and two drives +# +TestName="2drive-swap" +JobName="2drive-swap" +. scripts/functions + +scripts/cleanup +scripts/copy-2disk-drive-confs +scripts/prepare-two-disks + +change_jobname NightlySave $JobName +start_test + +echo "${cwd}/build" >${cwd}/tmp/file-list + +# Turn off Prefer Mounted Volumes so we use 2 drives +outf="${cwd}/tmp/sed_tmp" +echo "s%# Prefer Mounted Volumes% Prefer Mounted Volumes%g" >${outf} +cp ${cwd}/bin/bacula-dir.conf ${cwd}/tmp/1 +# Comment the next line out to write everything to one drive +# otherwise, it writes the two jobs to different drives +sed -f ${outf} ${cwd}/tmp/1 >${cwd}/bin/bacula-dir.conf + +# Write out bconsole commands +cat <${cwd}/tmp/bconcmds +@output /dev/null +messages +@$out ${cwd}/tmp/log1.out +label storage=DDS-4 volume=TestVolume001 slot=1 Pool=Default drive=0 +label storage=DDS-4 volume=TestVolume002 slot=2 Pool=Default drive=1 +status storage=DDS-4 +@#setdebug level=120 storage=DDS-4 +run job=$JobName level=Full yes +@sleep 2 +run job=$JobName level=Full yes +wait +list volumes +list jobs +update volume=TestVolume001 maxvolbytes=40123123 +setdebug level=150 storage=DDS-4 +run job=$JobName level=Full yes +wait +list volumes +list jobs +messages +quit +END_OF_DATA + +run_bacula + +cat <${cwd}/tmp/bconcmds +@$out /dev/null +messages +@# now do a restore +@# +@$out ${cwd}/tmp/log2.out +restore where=${cwd}/tmp/bacula-restores select all storage=DDS-4 done +yes +wait +messages +@$out +quit +END_OF_DATA + +run_bconsole +check_for_zombie_jobs storage=DDS-4 +stop_bacula + +check_two_logs +check_restore_diff + +end_test diff --git a/regress/tests/disk-changer-test b/regress/tests/disk-changer-test index 193c5a096c..c0c0eec8c7 100755 --- a/regress/tests/disk-changer-test +++ b/regress/tests/disk-changer-test @@ -1,4 +1,7 @@ #!/bin/sh +rm -rf tmp/disk-changer +mkdir tmp/disk-changer +touch tmp/disk-changer/conf echo "Unload drive 0" bin/disk-changer tmp/disk-changer/conf unload 1 tmp/disk-changer/drive0 0 echo "rtn=$?" @@ -34,3 +37,9 @@ echo "rtn=$?" echo "Load Slot 2 in drive 0 -- error" bin/disk-changer tmp/disk-changer/conf load 2 tmp/disk-changer/drive0 0 echo "rtn=$?" +echo "Unload drive 0" +bin/disk-changer tmp/disk-changer/conf unload 1 tmp/disk-changer/drive0 0 +echo "rtn=$?" +echo "Load Slot 2 in drive 0 -- should fail" +bin/disk-changer tmp/disk-changer/conf load 2 tmp/disk-changer/drive0 0 +echo "rtn=$?"