From 544cbe7ce84edadfdbe430c598f332966d7b4150 Mon Sep 17 00:00:00 2001 From: Eric Bollengier Date: Thu, 21 Feb 2008 23:48:41 +0000 Subject: [PATCH] ebl Add Accurate tests git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@6458 91ce42f0-d328-0410-95d8-f526ca767f89 --- regress/scripts/bacula-dir.conf.accurate.in | 109 ++++++++++++++++++++ regress/scripts/do_sed | 1 + regress/tests/accurate-test | 87 ++++++++++++++++ 3 files changed, 197 insertions(+) create mode 100644 regress/scripts/bacula-dir.conf.accurate.in create mode 100755 regress/tests/accurate-test diff --git a/regress/scripts/bacula-dir.conf.accurate.in b/regress/scripts/bacula-dir.conf.accurate.in new file mode 100644 index 0000000000..da8fc69dab --- /dev/null +++ b/regress/scripts/bacula-dir.conf.accurate.in @@ -0,0 +1,109 @@ +# +# Default Bacula Director Configuration file +# +# The only thing that MUST be changed is to add one or more +# file or directory names in the Include directive of the +# FileSet resource. +# +# For Bacula release 1.39.27 (24 October 2006) -- debian testing/unstable +# +# You might also want to change the default email address +# from root to your address. See the "mail" and "operator" +# directives in the Messages resource. +# + +Director { # define myself + Name = @hostname@-dir + DIRPort = @dirport@ # where we listen for UA connections + QueryFile = "@scriptdir@/query.sql" + WorkingDirectory = "@working_dir@" + PidDirectory = "@piddir@" + SubSysDirectory = "@subsysdir@" + Maximum Concurrent Jobs = 4 + Password = "pNvX1WiXnwv2C/F7E52LGvw6rKjbbPvu2kyuPa9pVaL3" # Console password + Messages = Standard +} + +JobDefs { + Name = "DefaultJob" + Type = Backup + Level = Incremental + Client = @hostname@-fd + FileSet = FS_TESTJOB + Storage = File + Messages = Standard + Pool = Default + Priority = 10 + Maximum Concurrent Jobs = 16 +} + +FileSet { + Name = FS_TESTJOB + Include { + File=<@tmpdir@/file-list + } +} + +Job { + Accurate = yes + Name = backup + JobDefs = DefaultJob + FileSet = FS_TESTJOB +} + +# Standard Restore template, to be changed by Console program +Job { + Name = "RestoreFiles" + Type = Restore + Client=@hostname@-fd + FileSet= FS_TESTJOB + Storage = File + Messages = Standard + Pool = Default + Where = @tmpdir@/bacula-restores +} + +# Client (File Services) to backup +Client { + Name = @hostname@-fd + Address = @hostname@ + FDPort = @fdport@ + Catalog = MyCatalog + Password = "xevrjURYoCHhn26RaJoWbeWXEY/a3VqGKp/37tgWiuHc" # password for FileDaemon + File Retention = 30d # 30 days + Job Retention = 180d # six months + AutoPrune = yes # Prune expired Jobs/Files + Maximum Concurrent Jobs = 4 +} + +# Definiton of file storage device +Storage { + Name = File + Address = @hostname@ # N.B. Use a fully qualified name here + SDPort = @sdport@ + Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9" + Device = FileStorage + Media Type = File + Maximum Concurrent Jobs = 4 +} + +# Generic catalog service +Catalog { + Name = MyCatalog + dbname = regress; user = regress; password = "" +} + + +Messages { + Name = Standard + console = all, !skipped, !saved +} + +# Default pool definition +Pool { + Name = Default + Pool Type = Backup + Recycle = yes # Bacula can automatically recycle Volumes + AutoPrune = yes # Prune expired volumes + Volume Retention = 365d # one year +} diff --git a/regress/scripts/do_sed b/regress/scripts/do_sed index ed1e39ad20..8050583f2e 100755 --- a/regress/scripts/do_sed +++ b/regress/scripts/do_sed @@ -43,6 +43,7 @@ echo "s%@fdport@%${fdport}%g" >>${out} # process .in files with sed script sed -f ${out} ${cwd}/scripts/bacula-dir.conf.errors.in >${cwd}/scripts/bacula-dir.conf.errors +sed -f ${out} ${cwd}/scripts/bacula-dir.conf.accurate.in >${cwd}/scripts/bacula-dir.conf.accurate sed -f ${out} ${cwd}/scripts/test-bacula-dir.conf.in >${cwd}/scripts/test-bacula-dir.conf sed -f ${out} ${cwd}/scripts/multi-client-bacula-dir.conf.in >${cwd}/scripts/multi-client-bacula-dir.conf sed -f ${out} ${cwd}/scripts/bacula-dir.conf.regexwhere.in >${cwd}/scripts/bacula-dir.conf.regexwhere diff --git a/regress/tests/accurate-test b/regress/tests/accurate-test new file mode 100755 index 0000000000..e34b2b3e09 --- /dev/null +++ b/regress/tests/accurate-test @@ -0,0 +1,87 @@ +#!/bin/sh +# +# Run a accurate backup of the Bacula build directory +# then restore it. +# +TestName="accurate-test" +JobName=backup +. scripts/functions +scripts/cleanup + +copy_test_confs +/bin/cp -f scripts/bacula-dir.conf.accurate bin/bacula-dir.conf + +rm -rf ${cwd}/build/accurate.new +rm -rf ${cwd}/build/accurate + +change_jobname Client1 $JobName +mkdir ${cwd}/build/accurate +echo "test test" > ${cwd}/build/accurate/xxx +echo "test test" > ${cwd}/build/accurate/yyy +echo "test test" > ${cwd}/build/accurate/zzz +echo ${cwd}/build > ${cwd}/tmp/file-list + +start_test + +cat <${cwd}/tmp/bconcmds +@output /dev/null +messages +label volume=TestVolume001 storage=File pool=Default +messages +END_OF_DATA + +run_bacula + +cat <${cwd}/tmp/bconcmds +@$out ${cwd}/tmp/log1.out +run job=$JobName yes +wait +messages +@# +@# now do a restore +@# +@$out ${cwd}/tmp/log2.out +restore where=${cwd}/tmp/bacula-restores select all done +yes +wait +messages +@$out +quit +END_OF_DATA + +run_bconsole +check_for_zombie_jobs storage=File + +check_two_logs +check_restore_diff + +rm -rf ${cwd}/tmp/bacula-restores + +# Now do a second backup after making a few changes +# +rm ${cwd}/build/accurate/xxx + +run_bconsole +check_for_zombie_jobs storage=File + +check_two_logs +check_restore_diff + +rm -rf ${cwd}/tmp/bacula-restores + +# This doesn't work yet... +# +## Now do a second backup after making a few changes +## +#mv ${cwd}/build/accurate ${cwd}/build/accurate.new +# +#run_bconsole +#check_for_zombie_jobs storage=File +# +#check_two_logs +#check_restore_diff +# +#rm -rf ${cwd}/tmp/bacula-restores +# +stop_bacula +end_test -- 2.39.5