#!/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 then create some           
#   new files, do an Incremental and restore those two files.
#
TestName="short-incremental-test"
JobName=Incremental 
. scripts/functions

${rscripts}/cleanup
${rscripts}/copy-test-confs
echo "${tmpsrc}" >${tmp}/file-list
mkdir -p ${tmpsrc}
cp -p ${src}/src/dird/*.c ${tmpsrc}
cd ${tmp}
echo "${tmpsrc}/ficheriro1.txt" >restore-list
echo "${tmpsrc}/ficheriro2.txt" >>restore-list
cd ${cwd}

change_jobname CompressedTest $JobName

#To remove GZIP of the equation uncomment the line below
#sed -i 's/compression=GZIP//' $conf/bacula-dir.conf

start_test

cat <<END_OF_DATA >${tmp}/bconcmds
@output /dev/null
messages
@$out ${tmp}/log1.out
setdebug level=15 storage=File
@#setdebug level=200 client
@#setdebug level=100 director
setdebug level=200 storage
label storage=File volume=TestVolume001
label storage=File volume=TestVolume002
run job=$JobName yes
status client
wait
messages
quit
END_OF_DATA

run_bacula
check_for_zombie_jobs storage=File
#
# Now create two new files to be restored later
#
sleep 1
echo "ficheriro1.txt" >${tmpsrc}/ficheriro1.txt
cp -f ${tmpsrc}/dird.c ${tmpsrc}/ficheriro2.txt

cat <<END_OF_DATA >${tmp}/bconcmds
@output /dev/null
messages
@$out ${tmp}/log1.out
@# Force Incremental on the second Volume
@#update volume=TestVolume001 VolStatus=Used
setdebug level=200 storage=File
setdebug level=4 client
run level=Differential job=$JobName yes
wait
messages
quit
END_OF_DATA

run_bconsole

cat <<END_OF_DATA >${tmp}/bconcmds
@output /dev/null
messages
@$out ${tmp}/log1.out
setdebug level=200 storage=File
run level=Incremental job=$JobName yes
wait
messages
@# 
@# now do a restore
@#
@$out ${tmp}/log2.out
setdebug level=200 storage=File
restore where=${tmp}/bacula-restores storage=File file=<${tmp}/restore-list
yes
wait
status client
status storage=File
messages
quit
END_OF_DATA

run_bconsole
check_for_zombie_jobs storage=File
stop_bacula

check_two_logs
#
# Delete .c files because we will only restored the txt files
#
rm -f ${tmpsrc}/*.c
check_restore_tmp_build_diff
end_test
