]> git.sur5r.net Git - bacula/bacula/commitdiff
Enhanced error detection of disk-changer and new 2drive-swap-test
authorKern Sibbald <kern@sibbald.com>
Sat, 3 May 2008 09:06:53 +0000 (09:06 +0000)
committerKern Sibbald <kern@sibbald.com>
Sat, 3 May 2008 09:06:53 +0000 (09:06 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@6884 91ce42f0-d328-0410-95d8-f526ca767f89

regress/DartTestfile.txt.in
regress/all-disk-tests
regress/tests/2drive-swap-test [new file with mode: 0755]
regress/tests/disk-changer-test

index 71dbbc8c08442577598ad3efe7c854d907173adf..1b2a5908d9989177f1106918935902aaafb69da5 100644 (file)
@@ -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")
index 9c027c6d6715f9915ce8f6ae8bed0bd18a2d2bf6..e04d4d9f2457bfcd5f2bccbb650daed3b6bb9ecd 100755 (executable)
@@ -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 (executable)
index 0000000..a1eb027
--- /dev/null
@@ -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 <<END_OF_DATA >${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 <<END_OF_DATA >${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
index 193c5a096c5f670ec3de3ea29064a33390d04abc..c0c0eec8c7217cb2941fcaf4057a9f61a06f01a2 100755 (executable)
@@ -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=$?"