# Run a accurate backup of the Bacula build directory
# then restore it.
#
+
TestName="accurate-test"
JobName=backup
. scripts/functions
change_jobname Client1 $JobName
+p() {
+ echo "##############################################" >> ${cwd}/tmp/log1.out
+ echo "$*" >> ${cwd}/tmp/log1.out
+ echo "##############################################" >> ${cwd}/tmp/log2.out
+ echo "$*" >> ${cwd}/tmp/log2.out
+}
+
# cleanup
rm -rf ${cwd}/build/accurate.new
rm -rf ${cwd}/build/accurate
# add extra files
mkdir ${cwd}/build/accurate
+mkdir ${cwd}/build/accurate/dirtest
+echo "test test" > ${cwd}/build/accurate/dirtest/hello
echo "test test" > ${cwd}/build/accurate/xxx
echo "test test" > ${cwd}/build/accurate/yyy
echo "test test" > ${cwd}/build/accurate/zzz
@# now do a restore
@#
@$out ${cwd}/tmp/log2.out
+setdebug level=10 storage=File
restore fileset=FS_TESTJOB where=${cwd}/tmp/bacula-restores select all done
yes
wait
END_OF_DATA
################################################################
-# First : We just run full and restore to compare if all is ok
+p First : We just run full and restore to compare if all is ok
################################################################
run_bconsole
rm -rf ${cwd}/tmp/bacula-restores
################################################################
-# Now do a second backup after making few changes
+p Now do a second backup after making few changes
################################################################
rm ${cwd}/build/accurate/xxx # delete a file
+rm ${cwd}/build/accurate/dirtest/hello
run_bconsole
check_for_zombie_jobs storage=File
check_two_logs
check_restore_diff
+check_files_written ${cwd}/tmp/log1.out 4
rm -rf ${cwd}/tmp/bacula-restores
################################################################
-# Now do a third backup after making few changes
+p Now do a third backup after making few changes
################################################################
rm ${cwd}/build/accurate/yyyyyy # delete a file
+rmdir ${cwd}/build/accurate/dirtest
run_bconsole
check_for_zombie_jobs storage=File
check_two_logs
check_restore_diff
+check_files_written ${cwd}/tmp/log1.out 3
rm -rf ${cwd}/tmp/bacula-restores
################################################################
-# Now do a 4 backup after making few changes
+p Now do a 4 backup after making few changes
################################################################
rm ${cwd}/build/accurate/zzzzzz # delete a file
check_two_logs
check_restore_diff
+check_files_written ${cwd}/tmp/log1.out 2
rm -rf ${cwd}/tmp/bacula-restores
################################################################
-# Now do a 5 backup after making few changes
+p Now do a 5 backup after making few changes
################################################################
rm ${cwd}/build/accurate/zzzzzzzzz
check_two_logs
check_restore_diff
+check_files_written ${cwd}/tmp/log1.out 2
rm -rf ${cwd}/tmp/bacula-restores
################################################################
-# Now do a backup after making few changes
+p Now do a backup after making few changes
################################################################
touch ${cwd}/build/accurate/aaaaaa
check_two_logs
check_restore_diff
+check_files_written ${cwd}/tmp/log1.out 2
rm -rf ${cwd}/tmp/bacula-restores
################################################################
-# Check with bls
+p Check with bls
################################################################
-${cwd}/bin/bls -c ${cwd}/bin/bacula-sd.conf -V 'TestVolume001' FileStorage > tmp/bls.out
+$bin/bls -c bin/bacula-sd.conf -V 'TestVolume001' FileStorage > tmp/bls.out
grep -- '----' tmp/bls.out | grep xxx > /dev/null
if [ $? != 0 ] ; then
bstat=2
fi
################################################################
-# Now do a backup after making few changes
+p Now do a backup after making few changes
################################################################
# some files will have disappear, others have their old mtime/ctime
rm -rf ${cwd}/tmp/bacula-restores
################################################################
-# Now do an other test in differential mode
+p Now do an other test in differential mode
################################################################
cat <<END_OF_DATA >${cwd}/tmp/bconcmds
@# now do a restore
@#
@$out ${cwd}/tmp/log2.out
+setdebug level=10 storage=File
restore fileset=FS_TESTJOB where=${cwd}/tmp/bacula-restores select all done
yes
wait
rm -rf ${cwd}/tmp/bacula-restores
################################################################
-# Now do an other test in differential mode + incremental
+p Now do an other test in differential mode + incremental
################################################################
# make some changes
@# now do a restore
@#
@$out ${cwd}/tmp/log2.out
+setdebug level=10 storage=File
restore fileset=FS_TESTJOB where=${cwd}/tmp/bacula-restores select all done
yes
wait
rm -rf ${cwd}/tmp/bacula-restores
################################################################
-# Now do a backup after making few changes
+p Now do a backup after making few changes
################################################################
rm ${cwd}/build/accurate/aaaaaa
touch ${cwd}/build/accurate/bbbbbb
run_bconsole
check_for_zombie_jobs storage=File
+check_files_written ${cwd}/tmp/log1.out 3
check_two_logs
check_restore_diff
################################################################
-# Now do a backup after making few changes
+p Now do a backup after making few changes
################################################################
mv ${cwd}/tmp/bacula-restores ${cwd}/build/accurate/
rm -rf ${cwd}/tmp/bacula-restores ${cwd}/build/accurate/bacula-restores
################################################################
-# Check with bscan
+p Check with bscan
################################################################
stop_bacula
bscan_libdbi
-${cwd}/bin/bscan -c ${cwd}/bin/bacula-sd.conf $BSCANLIBDBI -n regress -u regress -m -s -b tmp/bscan.bsr FileStorage 2>&1 > ${cwd}/tmp/bscan.log
+$bin/bscan -c bin/bacula-sd.conf $BSCANLIBDBI -n regress -u regress -m -s -b tmp/bscan.bsr FileStorage 2>&1 > ${cwd}/tmp/bscan.log
cat <<END_OF_DATA >${cwd}/tmp/bconcmds
@$out ${cwd}/tmp/log1.out
messages
@#
-@# now do a restore
+@# now do a restore after bscan
@#
@$out ${cwd}/tmp/log2.out
+setdebug level=10 storage=File
restore fileset=FS_TESTJOB where=${cwd}/tmp/bacula-restores select all done
yes
wait
rm -rf ${cwd}/tmp/bacula-restores
################################################################
-# Now do a test with other attributes (owner, gid, rights)
+p Now do a test with other attributes: owner, gid, rights
################################################################
cat <<END_OF_DATA >${cwd}/tmp/bconcmds
@# now do a restore
@#
@$out ${cwd}/tmp/log2.out
+setdebug level=10 storage=File
restore fileset=FS_TESTJOB_ADVANCE where=${cwd}/tmp/bacula-restores select all done
yes
wait
################################################################
-# Use the p option for verify
+p Use the p option for verify
################################################################
chmod 400 ${cwd}/build/accurate/yyy
@# now do a restore
@#
@$out ${cwd}/tmp/log2.out
+setdebug level=10 storage=File
restore fileset=FS_TESTJOB_ADVANCE where=${cwd}/tmp/bacula-restores select all done
yes
wait
check_two_logs
check_restore_diff
+check_files_written ${cwd}/tmp/log1.out 1
rm -rf ${cwd}/tmp/bacula-restores
################################################################
-# Test strippath option
+p Test strippath option
################################################################
cat <<END_OF_DATA >${cwd}/tmp/bconcmds
grep yyy ${cwd}/tmp/log3.out > /dev/null
if [ $? != 0 ] ; then
- print_debug "Can't find xxx file into 'list files' output (${cwd}/tmp/log3.out)"
+ print_debug "Can't find yyy file into 'list files' output (${cwd}/tmp/log3.out)"
dstat=2
fi