]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
regress: Add test for 'delete object' command
authorMichal Rakowski <michal.rakowski@baculasystems.com>
Thu, 22 Oct 2020 21:03:09 +0000 (23:03 +0200)
committerEric Bollengier <eric@baculasystems.com>
Thu, 24 Mar 2022 08:02:58 +0000 (09:02 +0100)
regress/tests/console-delete-object-test [new file with mode: 0755]

diff --git a/regress/tests/console-delete-object-test b/regress/tests/console-delete-object-test
new file mode 100755 (executable)
index 0000000..b12eac3
--- /dev/null
@@ -0,0 +1,107 @@
+#!/bin/bash
+#
+# Copyright (C) 2000-2020 Kern Sibbald
+# License: BSD 2-Clause; see file LICENSE-FOSS
+#
+# Test if Plugin Objects are deleted corectly by 'delete object' command.
+#
+TestName="console-delete-object-test"
+JobName=pluginTest
+. scripts/functions
+
+scripts/cleanup
+scripts/copy-plugin-confs
+make -C $src/src/plugins/fd install install-test-plugin
+if [ $? -ne 0 ]; then
+    print_debug "Failed to build and install test-plugin!"
+    exit 1
+fi
+
+file=encrypt-bug.jpg
+rm -rf ${cwd}/tmp/*
+echo "${cwd}/README" >${cwd}/tmp/file-list
+
+start_test
+
+cat <<END_OF_DATA >${cwd}/tmp/bconcmds
+@output /dev/null
+messages
+@$out ${cwd}/tmp/log1.out
+label storage=File1 volume=TestVolume001
+run job=TestPluginTest storage=File1 yes
+wait
+status client=$CLIENT
+messages
+@$out ${cwd}/tmp/log2.out
+list objects
+quit
+END_OF_DATA
+
+run_bacula
+
+vm_objects_lines=`cat ${cwd}/tmp/log2.out | grep 'VMWare' | wc -l`
+if [ ${vm_objects_lines} -eq 0 ]; then
+   estat=1
+   print_debug "Did not find any object of 'VMWare' type"
+fi
+
+db_objects_lines=`cat ${cwd}/tmp/log2.out | grep 'PostgreSQL' | wc -l`
+if [ ${objects_lines} -eq 0 ]; then
+   estat=1
+   print_debug "Did not find any object of 'PostgreSQL' type"
+fi
+
+cat $tmp/log2.out | awk  '/VMWare/ {print $2 }' > $tmp/vmware_ids.log
+readarray -t vmware_ids < $tmp/vmware_ids.log
+
+cat $tmp/log2.out | awk  '/PostgreSQL/ {print $2 }' > $tmp/postgresql_ids.log
+readarray -t postgresql_ids < $tmp/postgresql_ids.log
+
+cat <<END_OF_DATA >${cwd}/tmp/bconcmds
+@$out ${cwd}/tmp/log3.out
+delete
+7
+${vmware_ids[0]}
+@$out ${cwd}/tmp/log4.out
+list objects
+quit
+END_OF_DATA
+
+run_bconsole
+
+objects_lines=`cat ${cwd}/tmp/log4.out | grep 'VMWare' | wc -l`
+if [ ${objects_lines} -ne 1 ]; then
+   estat=1
+   print_debug "Wrong VMWare plugin objects count found in output: ${objects_lines}"
+fi
+
+objects_lines=`cat ${cwd}/tmp/log4.out | grep 'PostgreSQL' | wc -l`
+if [ ${objects_lines} -ne $db_objects_lines ]; then
+   estat=1
+   print_debug "No PostgreSQL object should be deleted now"
+fi
+
+cat <<END_OF_DATA >${cwd}/tmp/bconcmds
+@$out ${cwd}/tmp/log5.out
+delete object objectid="${postgresql_ids[0]},${postgresql_ids[1]}"
+@$out ${cwd}/tmp/log6.out
+list objects
+quit
+END_OF_DATA
+
+run_bconsole
+
+objects_lines=`cat ${cwd}/tmp/log6.out | grep 'VMWare' | wc -l`
+if [ ${objects_lines} -ne 1 ]; then
+   estat=1
+   print_debug "Wrong VMWare plugin objects count found in output: ${objects_lines}"
+fi
+
+objects_lines=`cat ${cwd}/tmp/log6.out | grep 'PostgreSQL' | wc -l`
+if [ ${objects_lines} -ne 0 ]; then
+   estat=1
+   print_debug "No PostgreSQL object should be deleted now"
+fi
+
+stop_bacula
+end_test