From 52d8da7ccdbe3cc00ecd583c5dd0a87db1177554 Mon Sep 17 00:00:00 2001 From: "norbert.bizet" Date: Tue, 7 Nov 2023 06:32:22 -0500 Subject: [PATCH] cloud: create a regress test to validate cloud work queue thread resizing --- regress/tests/cloud-threads-test | 94 ++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100755 regress/tests/cloud-threads-test diff --git a/regress/tests/cloud-threads-test b/regress/tests/cloud-threads-test new file mode 100755 index 000000000..b02070476 --- /dev/null +++ b/regress/tests/cloud-threads-test @@ -0,0 +1,94 @@ +#!/bin/sh +# +# Copyright (C) 2000-2021 Kern Sibbald +# Copyright (C) 2021-2023 Bacula Systems SA +# License: BSD 2-Clause; see file LICENSE-FOSS +# +# Cloud test. We run backups and restore with the "truncate cache" command in-between +# +TestName="cloud-threads-test" +JobName=NightlySave +. scripts/functions + +require_cloud + +#config is required for cloud cleanup +scripts/copy-test-confs +scripts/cleanup + +FORCE_FILE_SET=${FORCE_FILE_SET:-"${cwd}/build"} +echo "$FORCE_FILE_SET" >${cwd}/tmp/file-list + +start_test + +$bperl -e 'add_attribute("$conf/bacula-sd.conf", "MaximumPartSize", "1000000", "Device")' +$bperl -e 'add_attribute("$conf/bacula-sd.conf", "MaximumUploadBandwidth", "1MB/s", "Cloud")' +$bperl -e 'add_attribute("$conf/bacula-sd.conf", "MaximumDownloadBandwidth", "1MB/s", "Cloud")' +$bperl -e 'add_attribute("$conf/bacula-sd.conf", "MaximumConcurrentUploads", "20", "Cloud")' +$bperl -e 'add_attribute("$conf/bacula-sd.conf", "MaximumConcurrentDownloads", "20", "Cloud")' + +cat <${cwd}/tmp/bconcmds +@output /dev/null +messages +@$out ${cwd}/tmp/log1.out +label storage=File volume=Vol1 +END_OF_DATA + +# do label +run_bacula + +cat <${cwd}/tmp/bconcmds +@output /dev/null +messages +@$out ${cwd}/tmp/log1.out +setdebug level=50 tags=cloud options=t trace=1 storage +run job=$JobName level=Full yes +wait +list volumes +llist volume=Vol1 +messages +truncate cache volume=Vol1 storage=File +END_OF_DATA + +run_bconsole + +cat <${cwd}/tmp/bconcmds-form +@# +@# now do a restore +@# +@$out ${cwd}/tmp/log2.out +setdebug level=50 tags=cloud options=t trace=1 storage +@exec "ls -l ${cwd}/tmp/Vol1" +restore where=${cwd}/tmp/bacula-restores storage=File jobid=@jobid@ +mark * +done +yes +wait +messages +sql +select * from JobMedia; + +@$out $tmp/log31.out +cloud list storage=File +@$out $tmp/log3.out +cloud list volume=Vol1 storage=File +quit +END_OF_DATA + +ls -l tmp/Vol* >>${cwd}/tmp/log3.out +ls -l ${cwd}/tmp/Vol1 + +sleep 2 +check_for_zombie_jobs storage=File +stop_bacula + +check_two_logs + +# FIXME test parallelism + +$rscripts/diff.pl -s "$FORCE_FILE_SET" -d "$cwd/tmp/bacula-restores/$FORCE_FILE_SET" +if test $? -ne 0; then + dstat=$? +fi + +end_test -- 2.47.3