#!/bin/sh
#
# Copyright (C) 2000-2022 Kern Sibbald
# License: BSD 2-Clause; see file LICENSE-FOSS
#

#
# Run a simple backup of the Bacula build directory using the compressed option
#   then backup a second time and finally restore it
#
TestName="two-jobs-test"
JobName=Two-Jobs
. scripts/functions

cwd=`pwd`
scripts/cleanup
scripts/copy-test-confs
echo "${cwd}/build" >${cwd}/tmp/file-list

#echo "${cwd}/build/src/Makefile" >${cwd}/tmp/file-list
#echo "${cwd}/build/src/Makefile.in" >>${cwd}/tmp/file-list
#echo "${cwd}/build/src/testprogs.tar.gz" >>${cwd}/tmp/file-list
#echo "${cwd}/build/src/dummy" >>${cwd}/tmp/file-list
#echo "${cwd}/build/src/stored" >>${cwd}/tmp/file-list
#echo "${cwd}/build/src/dird" >>${cwd}/tmp/file-list
#echo "${cwd}/build/src/filed" >>${cwd}/tmp/file-list
#echo "${cwd}/build/src/console" >>${cwd}/tmp/file-list
#echo "${cwd}/build/src/qt-console" >>${cwd}/tmp/file-list
#echo "${cwd}/build/src/cats" >>${cwd}/tmp/file-list

change_jobname CompressedTest $JobName
start_test

cat >tmp/bconcmds <<END_OF_DATA
setdebug level=4  storage=File
@output /dev/null
messages
@$out/dev/null
estimate job=$JobName listing
estimate job=$JobName
estimate job=$JobName
messages
@$out tmp/log1.out
label storage=File volume=TestVolume001
run job=$JobName yes
wait
messages
quit
END_OF_DATA

run_bacula
check_for_zombie_jobs storage=File 

#echo "Backup 1 done"
#$bin/bls -d 4 -v -c $conf/bacula-sd.conf -V 'TestVolume001' FileStorage
touch ${cwd}/build/src/dird/dird_conf.c
#
# run a second job
#
cat >tmp/bconcmds <<END_OF_DATA
@output /dev/null
messages
@$out tmp/log1.out
setdebug level=51  storage=File
run level=Full job=$JobName
yes
wait
messages
@# 
@# now do several restores to ensure we cleanup between jobs
@#
@output /dev/null
restore where=${cwd}/tmp/bacula-restores select all storage=File done
yes
wait
setdebug level=51 storage=File
restore where=${cwd}/tmp/bacula-restores select all storage=File done
yes
wait
@$out tmp/log2.out
setdebug level=51  storage=File
restore where=${cwd}/tmp/bacula-restores select storage=File
unmark *
mark *
lsmark
done
yes
wait
messages
quit
$bin/bls -d 4 -v -c $conf/bacula-sd.conf -V 'TestVolume001' FileStorage
END_OF_DATA

run_bconsole
check_for_zombie_jobs storage=File
stop_bacula

check_two_logs
check_restore_diff
#cd ${cwd}/tmp/bacula-restores/${cwd}/build
#for i in src/*; do \
#  diff -ur $i ${cwd}/build/$i
#  if test $? -ne 0; then
#    dstat=$?
#  fi
# done
end_test
