From d4207560c0f3abd83e5d4727537b9263becc9347 Mon Sep 17 00:00:00 2001 From: Philipp Storz Date: Wed, 8 Jan 2020 16:55:48 +0100 Subject: [PATCH 01/10] systemtests: use individual binary names per test avoids the interference between different tests when stopping the daemons. Also refactored CMakeLists.txt --- core/scripts/bareos-ctl-dir.in | 3 +- core/scripts/bareos-ctl-fd.in | 18 +++++---- core/scripts/bareos-ctl-sd.in | 16 ++++---- systemtests/CMakeLists.txt | 68 ++++++++++++++++++++-------------- systemtests/environment.in | 7 ++++ 5 files changed, 68 insertions(+), 44 deletions(-) diff --git a/core/scripts/bareos-ctl-dir.in b/core/scripts/bareos-ctl-dir.in index e3fdc750dd3..c416970f84f 100755 --- a/core/scripts/bareos-ctl-dir.in +++ b/core/scripts/bareos-ctl-dir.in @@ -11,7 +11,8 @@ export AWK="@AWK@" export PIDOF="@PIDOF@" export PGREP="@PGREP@" -BAREOS_DIRECTOR_BINARY="${BAREOS_BIN_DIR:-@sbindir@/bareos-dir}" +PIDDIR=${PIDDIR:-@piddir@} +BAREOS_DIRECTOR_BINARY="${BAREOS_DIRECTOR_BINARY:-@sbindir@/bareos-dir}" export BAREOS_CONFIG_DIR=${BAREOS_CONFIG_DIR:-@confdir@} BAREOS_DIRECTOR_PORT=${BAREOS_DIRECTOR_PORT:-@dir_port@} BAREOS_DIRECTOR_USER=${BAREOS_DIRECTOR_USER:-@dir_user@} diff --git a/core/scripts/bareos-ctl-fd.in b/core/scripts/bareos-ctl-fd.in index 91cea63cfe9..6747f2032a6 100755 --- a/core/scripts/bareos-ctl-fd.in +++ b/core/scripts/bareos-ctl-fd.in @@ -22,8 +22,10 @@ AWK=@AWK@ # easier to "steal" this code for the development # environment where they are different. # -BIN=@sbindir@/bareos-fd -PIDDIR=@piddir@ + + +BAREOS_FILEDAEMON_BINARY=${BAREOS_FILEDAEMON_BINARY:-@sbindir@/bareos-fd} +PIDDIR=${PIDDIR:-@piddir@} SUBSYSDIR=@subsysdir@ BAREOS_CONFIG_DIR=${BAREOS_CONFIG_DIR:-@confdir@} @@ -49,7 +51,7 @@ fi case "$1" in start) - if [ -x ${BIN} ]; then + if [ -x ${BAREOS_FILEDAEMON_BINARY} ]; then echo "Starting the $Bareos File daemon" OPTIONS='' if [ "${BAREOS_FD_USER}" != '' ]; then @@ -65,17 +67,17 @@ case "$1" in fi if [ "x${VALGRIND_FD}" = "x1" ]; then - valgrind --leak-check=full ${BIN} -v $2 $3 ${OPTIONS} + valgrind --leak-check=full ${BAREOS_FILEDAEMON_BINARY} -v $2 $3 ${OPTIONS} else - ${BIN} -v $2 $3 ${OPTIONS} + ${BAREOS_FILEDAEMON_BINARY} -v $2 $3 ${OPTIONS} fi fi ;; stop) - if [ -x ${BIN} ]; then + if [ -x ${BAREOS_FILEDAEMON_BINARY} ]; then echo "Stopping the $Bareos File daemon" - killproc ${BIN} ${BAREOS_FD_PORT} + killproc ${BAREOS_FILEDAEMON_BINARY} ${BAREOS_FD_PORT} fi ;; @@ -86,7 +88,7 @@ case "$1" in ;; status) - [ -x ${BIN} ] && status ${BIN} ${BAREOS_FD_PORT} + [ -x ${BAREOS_FILEDAEMON_BINARY} ] && status ${BAREOS_FILEDAEMON_BINARY} ${BAREOS_FD_PORT} exit $? ;; diff --git a/core/scripts/bareos-ctl-sd.in b/core/scripts/bareos-ctl-sd.in index d48bbc661ac..e077b0d4608 100755 --- a/core/scripts/bareos-ctl-sd.in +++ b/core/scripts/bareos-ctl-sd.in @@ -22,8 +22,8 @@ AWK=@AWK@ # easier to "steal" this code for the development # environment where they are different. # -BIN=@sbindir@/bareos-sd -export PIDDIR=@piddir@ +BAREOS_STORAGEDAEMON_BINARY=${BAREOS_STORAGEDAEMON_BINARY:-@sbindir@/bareos-sd} +PIDDIR=${PIDDIR:-@piddir@} SUBSYSDIR=@subsysdir@ BAREOS_CONFIG_DIR=${BAREOS_CONFIG_DIR:-@confdir@} @@ -49,7 +49,7 @@ fi case "$1" in start) - if [ -x ${BIN} ]; then + if [ -x ${BAREOS_STORAGEDAEMON_BINARY} ]; then echo "Starting the $Bareos Storage daemon" OPTIONS='' if [ "${BAREOS_SD_USER}" != '' ]; then @@ -65,17 +65,17 @@ case "$1" in fi if [ "x${VALGRIND_SD}" = "x1" ]; then - valgrind --leak-check=full ${BIN} -v $2 $3 ${OPTIONS} + valgrind --leak-check=full ${BAREOS_STORAGEDAEMON_BINARY} -v $2 $3 ${OPTIONS} else - ${BIN} -v $2 $3 ${OPTIONS} + ${BAREOS_STORAGEDAEMON_BINARY} -v $2 $3 ${OPTIONS} fi fi ;; stop) - if [ -x ${BIN} ]; then + if [ -x ${BAREOS_STORAGEDAEMON_BINARY} ]; then echo "Stopping the $Bareos Storage daemon" - killproc ${BIN} ${BAREOS_SD_PORT} + killproc ${BAREOS_STORAGEDAEMON_BINARY} ${BAREOS_SD_PORT} fi ;; @@ -86,7 +86,7 @@ case "$1" in ;; status) - [ -x ${BIN} ] && status ${BIN} ${BAREOS_SD_PORT} + [ -x ${BAREOS_STORAGEDAEMON_BINARY} ] && status ${BAREOS_STORAGEDAEMON_BINARY} ${BAREOS_SD_PORT} exit $? ;; diff --git a/systemtests/CMakeLists.txt b/systemtests/CMakeLists.txt index 118ef08dbfa..7daf07ca0c5 100644 --- a/systemtests/CMakeLists.txt +++ b/systemtests/CMakeLists.txt @@ -45,10 +45,6 @@ function(ConfigureFilesToSystemtest srcbasedir dirname globexpression ${configure_option} ) endforeach() - # message( - # STATUS - # "Configured ${COUNT} files from ${srcbasedir}/${srcdirname} to ${dirname} with glob ${globexpression} ${configure_option}" - #) endfunction() # generic function to probe for a python module @@ -200,14 +196,42 @@ macro(prepare_test) file(MAKE_DIRECTORY ${confdir}) file(MAKE_DIRECTORY ${working_dir}) file(MAKE_DIRECTORY ${config_directory_dir_additional_test_config}) - # create a bin/bareos and bin/bconsole script in every testdir for start/stop - # and bconsole + # create a bin/bareos and bin/bconsole script in every testdir for + # start/stop and bconsole file(MAKE_DIRECTORY "${current_test_directory}/bin") - configure_file("bin/bconsole" "${current_test_directory}/bin/bconsole" COPYONLY) + configure_file( + "bin/bconsole" "${current_test_directory}/bin/bconsole" COPYONLY + ) configure_file("bin/bareos" "${current_test_directory}/bin/bareos" COPYONLY) + + set(BAREOS_DIRECTOR_BINARY + ${current_test_directory}/sbin/bareos-dir-${TEST_NAME} + ) + set(BAREOS_STORAGEDAEMON_BINARY + ${current_test_directory}/sbin/bareos-sd-${TEST_NAME} + ) + set(BAREOS_FILEDAEMON_BINARY + ${current_test_directory}/sbin/bareos-fd-${TEST_NAME} + ) + file(MAKE_DIRECTORY "${current_test_directory}/sbin") + create_symlink( + "${CMAKE_CURRENT_BINARY_DIR}/sbin/bareos-dir" "${BAREOS_DIRECTOR_BINARY}" + ) + create_symlink( + "${CMAKE_CURRENT_BINARY_DIR}/sbin/bareos-sd" + "${BAREOS_STORAGEDAEMON_BINARY}" + ) + create_symlink( + "${CMAKE_CURRENT_BINARY_DIR}/sbin/bareos-fd" + "${BAREOS_FILEDAEMON_BINARY}" + ) endif() endmacro() +macro(create_symlink target link) + execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${target} ${link}) +endmacro() + # extract db version from cats.h file(STRINGS ${CMAKE_SOURCE_DIR}/core/src/cats/cats.h DB_VERSION_STRING REGEX .*BDB_VERSION.* @@ -321,10 +345,7 @@ file(MAKE_DIRECTORY ${scripts}) file(MAKE_DIRECTORY ${working}) file(MAKE_DIRECTORY ${archivedir}) -execute_process( - COMMAND ${CMAKE_COMMAND} -E create_symlink ${scriptdir}/btraceback - ${sbindir}/btraceback -) +create_symlink(${scriptdir}/btraceback ${sbindir}/btraceback) file(REMOVE_RECURSE ${scripts}/ddl) file(RENAME ${PROJECT_BINARY_DIR}/ddl ${scripts}/ddl) @@ -580,10 +601,9 @@ set(BINARIES_TO_LINK_TO_SBIN foreach(BINARY_SOURCEPATH ${BINARIES_TO_LINK_TO_SBIN}) get_filename_component(BINARY_NAME ${BINARY_SOURCEPATH} NAME) - execute_process( - COMMAND ${CMAKE_COMMAND} -E create_symlink - ${PROJECT_BINARY_DIR}/../core/src/${BINARY_SOURCEPATH} - ${sbindir}/${BINARY_NAME} + create_symlink( + ${PROJECT_BINARY_DIR}/../core/src/${BINARY_SOURCEPATH} + ${sbindir}/${BINARY_NAME} ) endforeach() @@ -603,19 +623,13 @@ set(BINARIES_TO_LINK_TO_BIN foreach(BINARY_SOURCEPATH ${BINARIES_TO_LINK_TO_BIN}) get_filename_component(BINARY_NAME ${BINARY_SOURCEPATH} NAME) - execute_process( - COMMAND ${CMAKE_COMMAND} -E create_symlink - ${PROJECT_BINARY_DIR}/../core/src/${BINARY_SOURCEPATH} - ${bindir}/${BINARY_NAME} + create_symlink( + ${PROJECT_BINARY_DIR}/../core/src/${BINARY_SOURCEPATH} + ${bindir}/${BINARY_NAME} ) endforeach() -execute_process( - COMMAND ${CMAKE_COMMAND} -E create_symlink - ${PROJECT_BINARY_DIR}/../core/src/console/bconsole ${bindir}/bconsole -) - -execute_process( - COMMAND ${CMAKE_COMMAND} -E create_symlink ${scriptdir}/bareos - ${bindir}/bareos +create_symlink( + ${PROJECT_BINARY_DIR}/../core/src/console/bconsole ${bindir}/bconsole ) +create_symlink(${scriptdir}/bareos ${bindir}/bareos) diff --git a/systemtests/environment.in b/systemtests/environment.in index e64a255e00c..7df793bbe50 100644 --- a/systemtests/environment.in +++ b/systemtests/environment.in @@ -51,6 +51,13 @@ export BAREOS_DIRECTOR_PORT=@dir_port@ export BAREOS_STORAGE_PORT=@sd_port@ export BAREOS_STORAGE2_PORT=@sd2_port@ export BAREOS_FD_PORT=@fd_port@ + +export BAREOS_DIRECTOR_BINARY=@BAREOS_DIRECTOR_BINARY@ +export BAREOS_FILEDAEMON_BINARY=@BAREOS_FILEDAEMON_BINARY@ +export BAREOS_STORAGEDAEMON_BINARY=@BAREOS_STORAGEDAEMON_BINARY@ + + + export PIDDIR=@piddir@ export archivedir From e544c587a3d023053ad8d18d059e7c307490c66f Mon Sep 17 00:00:00 2001 From: Philipp Storz Date: Wed, 8 Jan 2020 17:09:54 +0100 Subject: [PATCH 02/10] systemtests: removed all killalls --- .../tests/backup-bareos-client-initiated-test/testrunner | 3 --- .../tests/reload-works-on-adding-client-resource/testrunner | 6 ------ .../testrunner | 6 ------ .../reload-works-on-adding-empty-job-resource/testrunner | 6 ------ .../testrunner | 6 ------ .../reload-works-on-adding-uncommented-string/testrunner | 6 ------ .../tests/reload-works-on-unchanged-config/testrunner | 6 ------ 7 files changed, 39 deletions(-) diff --git a/systemtests/tests/backup-bareos-client-initiated-test/testrunner b/systemtests/tests/backup-bareos-client-initiated-test/testrunner index 39b2256d05a..ecadafbace1 100755 --- a/systemtests/tests/backup-bareos-client-initiated-test/testrunner +++ b/systemtests/tests/backup-bareos-client-initiated-test/testrunner @@ -19,9 +19,6 @@ exit_with_error() { stop_bareos_daemons() { stop_bareos - if [ -n "$(pidof bareos-sd)" ]; then killall -SIGKILL bareos-sd >/dev/null 2>&1; fi - if [ -n "$(pidof bareos-fd)" ]; then killall -SIGKILL bareos-fd >/dev/null 2>&1; fi - if [ -n "$(pidof bareos-dir)" ]; then killall -SIGKILL bareos-dir >/dev/null 2>&1; fi } # Directory to backup. diff --git a/systemtests/tests/reload-works-on-adding-client-resource/testrunner b/systemtests/tests/reload-works-on-adding-client-resource/testrunner index 1bff34c78da..4ada9d3b43f 100755 --- a/systemtests/tests/reload-works-on-adding-client-resource/testrunner +++ b/systemtests/tests/reload-works-on-adding-client-resource/testrunner @@ -29,12 +29,6 @@ exit_with_error() { stop_director() { "${scripts}/bareos-ctl-dir" stop - if [ -n "$(pidof bareos-dir)" ]; then - killall -SIGKILL "$(pidof bareos-dir)" - fi - if [ -n "$(pidof bareos-dir)" ]; then - exit_with_error "Bareos director could not be stopped" - fi } start_director() { diff --git a/systemtests/tests/reload-works-on-adding-duplicate-job-resource/testrunner b/systemtests/tests/reload-works-on-adding-duplicate-job-resource/testrunner index df5cbed9cf6..4a62992044d 100755 --- a/systemtests/tests/reload-works-on-adding-duplicate-job-resource/testrunner +++ b/systemtests/tests/reload-works-on-adding-duplicate-job-resource/testrunner @@ -28,12 +28,6 @@ exit_with_error() { stop_director() { "${scripts}/bareos-ctl-dir" stop - if [ -n "$(pidof bareos-dir)" ]; then - killall -SIGKILL "$(pidof bareos-dir)" - fi - if [ -n "$(pidof bareos-dir)" ]; then - exit_with_error "Bareos director could not be stopped" - fi } start_director() { diff --git a/systemtests/tests/reload-works-on-adding-empty-job-resource/testrunner b/systemtests/tests/reload-works-on-adding-empty-job-resource/testrunner index 460dd5be3ad..538dbf57899 100755 --- a/systemtests/tests/reload-works-on-adding-empty-job-resource/testrunner +++ b/systemtests/tests/reload-works-on-adding-empty-job-resource/testrunner @@ -28,12 +28,6 @@ exit_with_error() { stop_director() { "${scripts}/bareos-ctl-dir" stop - if [ -n "$(pidof bareos-dir)" ]; then - killall -SIGKILL "$(pidof bareos-dir)" - fi - if [ -n "$(pidof bareos-dir)" ]; then - exit_with_error "Bareos director could not be stopped" - fi } start_director() { diff --git a/systemtests/tests/reload-works-on-adding-second-director-resource/testrunner b/systemtests/tests/reload-works-on-adding-second-director-resource/testrunner index a130c9e04e5..796dc834eda 100755 --- a/systemtests/tests/reload-works-on-adding-second-director-resource/testrunner +++ b/systemtests/tests/reload-works-on-adding-second-director-resource/testrunner @@ -28,12 +28,6 @@ exit_with_error() { stop_director() { "${scripts}/bareos-ctl-dir" stop - if [ -n "$(pidof bareos-dir)" ]; then - killall -SIGKILL "$(pidof bareos-dir)" - fi - if [ -n "$(pidof bareos-dir)" ]; then - exit_with_error "Bareos director could not be stopped" - fi } start_director() { diff --git a/systemtests/tests/reload-works-on-adding-uncommented-string/testrunner b/systemtests/tests/reload-works-on-adding-uncommented-string/testrunner index 02bbb8c8050..c77492c163f 100755 --- a/systemtests/tests/reload-works-on-adding-uncommented-string/testrunner +++ b/systemtests/tests/reload-works-on-adding-uncommented-string/testrunner @@ -28,12 +28,6 @@ exit_with_error() { stop_director() { "${scripts}/bareos-ctl-dir" stop - if [ -n "$(pidof bareos-dir)" ]; then - killall -SIGKILL "$(pidof bareos-dir)" - fi - if [ -n "$(pidof bareos-dir)" ]; then - exit_with_error "Bareos director could not be stopped" - fi } start_director() { diff --git a/systemtests/tests/reload-works-on-unchanged-config/testrunner b/systemtests/tests/reload-works-on-unchanged-config/testrunner index e54e5494e21..c0aedad18d2 100755 --- a/systemtests/tests/reload-works-on-unchanged-config/testrunner +++ b/systemtests/tests/reload-works-on-unchanged-config/testrunner @@ -27,12 +27,6 @@ exit_with_error() { stop_director() { "${scripts}/bareos-ctl-dir" stop - if [ -n "$(pidof bareos-dir)" ]; then - killall -SIGKILL "$(pidof bareos-dir)" - fi - if [ -n "$(pidof bareos-dir)" ]; then - exit_with_error "Bareos director could not be stopped" - fi } start_director() { From 2196cb10a882f635d5c52557578d04a3541b79e4 Mon Sep 17 00:00:00 2001 From: Philipp Storz Date: Thu, 9 Jan 2020 09:04:57 +0100 Subject: [PATCH 03/10] systemtests: add macro prepare_testdir_for_daemon_run --- systemtests/CMakeLists.txt | 105 ++++++++++++++++++++----------------- 1 file changed, 56 insertions(+), 49 deletions(-) diff --git a/systemtests/CMakeLists.txt b/systemtests/CMakeLists.txt index 7daf07ca0c5..2bd8201d012 100644 --- a/systemtests/CMakeLists.txt +++ b/systemtests/CMakeLists.txt @@ -145,6 +145,60 @@ macro(handle_python_plugin_modules test_name) # endif() endmacro() + + + +macro(prepare_testdir_for_daemon_run) + set(archivedir ${current_test_directory}/storage) + set(confdir ${current_test_directory}/etc/bareos) + set(config_directory_dir_additional_test_config + ${current_test_directory}/etc/bareos/bareos-dir.d/additional_test_config) + set(logdir ${current_test_directory}/log) + set(tmpdir ${current_test_directory}/tmp) + set(tmp ${tmpdir}) + set(working_dir ${current_test_directory}/working) + set(python_plugin_module_src_test_dir + ${current_test_directory}/python-modules + ) + + file(MAKE_DIRECTORY ${tmpdir}) + file(MAKE_DIRECTORY ${archivedir}) + file(MAKE_DIRECTORY ${logdir}) + file(MAKE_DIRECTORY ${confdir}) + file(MAKE_DIRECTORY ${working_dir}) + file(MAKE_DIRECTORY ${config_directory_dir_additional_test_config}) + # create a bin/bareos and bin/bconsole script in every testdir for + # start/stop and bconsole + file(MAKE_DIRECTORY "${current_test_directory}/bin") + configure_file( + "bin/bconsole" "${current_test_directory}/bin/bconsole" COPYONLY + ) + configure_file("bin/bareos" "${current_test_directory}/bin/bareos" COPYONLY) + + set(BAREOS_DIRECTOR_BINARY + ${current_test_directory}/sbin/bareos-dir-${TEST_NAME} + ) + set(BAREOS_STORAGEDAEMON_BINARY + ${current_test_directory}/sbin/bareos-sd-${TEST_NAME} + ) + set(BAREOS_FILEDAEMON_BINARY + ${current_test_directory}/sbin/bareos-fd-${TEST_NAME} + ) + file(MAKE_DIRECTORY "${current_test_directory}/sbin") + create_symlink( + "${CMAKE_CURRENT_BINARY_DIR}/sbin/bareos-dir" "${BAREOS_DIRECTOR_BINARY}" + ) + create_symlink( + "${CMAKE_CURRENT_BINARY_DIR}/sbin/bareos-sd" + "${BAREOS_STORAGEDAEMON_BINARY}" + ) + create_symlink( + "${CMAKE_CURRENT_BINARY_DIR}/sbin/bareos-fd" + "${BAREOS_FILEDAEMON_BINARY}" + ) +endmacro() + + macro(prepare_test) # base directory for this test set(current_test_directory ${PROJECT_BINARY_DIR}/tests/${TEST_NAME}) @@ -173,58 +227,10 @@ macro(prepare_test) math(EXPR sd2_port "${BASEPORT} + 3") math(EXPR php_port "${BASEPORT} + 4") - # set(DEFAULT_DB_TYPE ) - set(archivedir ${current_test_directory}/storage) - set(confdir ${current_test_directory}/etc/bareos) - set(config_directory_dir_additional_test_config - ${current_test_directory}/etc/bareos/bareos-dir.d/additional_test_config - ) - - set(logdir ${current_test_directory}/log) - set(tmpdir ${current_test_directory}/tmp) - set(tmp ${tmpdir}) - set(working_dir ${current_test_directory}/working) - set(python_plugin_module_src_test_dir - ${current_test_directory}/python-modules - ) # skip for tests without etc/bareos ("catalog" test) if(EXISTS ${current_test_source_directory}/etc/bareos) - file(MAKE_DIRECTORY ${tmpdir}) - file(MAKE_DIRECTORY ${archivedir}) - file(MAKE_DIRECTORY ${logdir}) - file(MAKE_DIRECTORY ${confdir}) - file(MAKE_DIRECTORY ${working_dir}) - file(MAKE_DIRECTORY ${config_directory_dir_additional_test_config}) - # create a bin/bareos and bin/bconsole script in every testdir for - # start/stop and bconsole - file(MAKE_DIRECTORY "${current_test_directory}/bin") - configure_file( - "bin/bconsole" "${current_test_directory}/bin/bconsole" COPYONLY - ) - configure_file("bin/bareos" "${current_test_directory}/bin/bareos" COPYONLY) - - set(BAREOS_DIRECTOR_BINARY - ${current_test_directory}/sbin/bareos-dir-${TEST_NAME} - ) - set(BAREOS_STORAGEDAEMON_BINARY - ${current_test_directory}/sbin/bareos-sd-${TEST_NAME} - ) - set(BAREOS_FILEDAEMON_BINARY - ${current_test_directory}/sbin/bareos-fd-${TEST_NAME} - ) - file(MAKE_DIRECTORY "${current_test_directory}/sbin") - create_symlink( - "${CMAKE_CURRENT_BINARY_DIR}/sbin/bareos-dir" "${BAREOS_DIRECTOR_BINARY}" - ) - create_symlink( - "${CMAKE_CURRENT_BINARY_DIR}/sbin/bareos-sd" - "${BAREOS_STORAGEDAEMON_BINARY}" - ) - create_symlink( - "${CMAKE_CURRENT_BINARY_DIR}/sbin/bareos-fd" - "${BAREOS_FILEDAEMON_BINARY}" - ) + prepare_testdir_for_daemon_run() endif() endmacro() @@ -525,6 +531,7 @@ if(ENABLE_WEBUI_SELENIUM_TEST) foreach(TEST_NAME ${WEBUI_SELENIUM_TESTS}) prepare_test() + prepare_testdir_for_daemon_run() # split WEBUI_TEST_NAME into PROFILE and TESTNAME string(REPLACE "-" ";" SELENIUM_TESTCOMPONENTS ${TEST_NAME}) # "webui-admin-restore" From f58465f27e091ac5fb886833e3b7b3547e75fd12 Mon Sep 17 00:00:00 2001 From: Philipp Storz Date: Thu, 9 Jan 2020 10:52:28 +0100 Subject: [PATCH 04/10] webui systemtests: use correct webui user and password --- systemtests/environment.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/systemtests/environment.in b/systemtests/environment.in index 7df793bbe50..560b733ffbe 100644 --- a/systemtests/environment.in +++ b/systemtests/environment.in @@ -84,8 +84,8 @@ export BAREOS_WEBUI_BROWSER=chrome export BAREOS_WEBUI_CHROMEDRIVER_PATH=@CHROMEDRIVER@ export BAREOS_WEBUI_BASE_URL=http://localhost:@php_port@/ -export BAREOS_WEBUI_USERNAME=admin -export BAREOS_WEBUI_PASSWORD=admin +export BAREOS_WEBUI_USERNAME=@BAREOS_WEBUI_PROFILE@ +export BAREOS_WEBUI_PASSWORD=@BAREOS_WEBUI_PROFILE@ export BAREOS_WEBUI_CLIENT_NAME=bareos-fd export BAREOS_WEBUI_RESTOREFILE=${PROJECT_BINARY_DIR} export BAREOS_WEBUI_LOG_PATH=${logdir} From 1a523697d42187765ff93e7d6adb248372dc5b94 Mon Sep 17 00:00:00 2001 From: Frank Ueberschar Date: Thu, 9 Jan 2020 16:00:45 +0100 Subject: [PATCH 05/10] tests: replaced static timeout by a dynamic - scheduler_sleep_count is called when the scheduler sleeps after doing his jobs --- .../tests/run_on_incoming_connect_interval.cc | 38 ++++++++++++++----- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/core/src/tests/run_on_incoming_connect_interval.cc b/core/src/tests/run_on_incoming_connect_interval.cc index 1c5f26aa083..bda46d286a2 100644 --- a/core/src/tests/run_on_incoming_connect_interval.cc +++ b/core/src/tests/run_on_incoming_connect_interval.cc @@ -119,11 +119,21 @@ TEST_F(RunOnIncomingConnectIntervalTest, EXPECT_TRUE(find(jobs, "backup-bareos-fd-connect-2")); } +static struct TestResults { + int job_counter{}; + int scheduler_sleep_count{}; + int timeout{}; + std::map job_names; +} test_results; + class TestTimeSource : public TimeSource { public: - int counter = 0; + int counter{}; time_t SystemTime() override { return ++counter; } - void SleepFor(std::chrono::seconds /*wait_interval*/) override {} + void SleepFor(std::chrono::seconds /*wait_interval*/) override + { + ++test_results.scheduler_sleep_count; + } void Terminate() override {} }; @@ -135,11 +145,6 @@ class TimeAdapter : public SchedulerTimeAdapter { } }; -static struct TestResults { - int job_counter{}; - std::map job_names; -} test_results; - static void SchedulerJobCallback(JobControlRecord* jcr) { ++test_results.job_counter; @@ -220,13 +225,17 @@ static void RunSchedulerAndSimulateClientConnect(BareosDb& db) std::make_unique(std::make_unique()), SchedulerJobCallback); - std::thread scheduler_thread(scheduler_loop, &scheduler); - test_results = TestResults(); SimulateClientConnect("bareos-fd", scheduler, db); - std::this_thread::sleep_for(std::chrono::milliseconds(20)); + std::thread scheduler_thread(scheduler_loop, &scheduler); + + int timeout{}; + while (test_results.scheduler_sleep_count < 3 && timeout < 500) { + std::this_thread::sleep_for(std::chrono::milliseconds(1)); + ++timeout; + } scheduler.Terminate(); scheduler_thread.join(); @@ -237,6 +246,9 @@ TEST_F(RunOnIncomingConnectIntervalTest, no_start_time_found_in_database) MockDatabase db(MockDatabase::Mode::kFindNoStartTime); RunSchedulerAndSimulateClientConnect(db); + EXPECT_TRUE(test_results.scheduler_sleep_count > 0) + << "The scheduler did not sleep"; + ASSERT_EQ(test_results.job_counter, 2) << "Not all jobs did run"; EXPECT_NE(test_results.job_names.find("backup-bareos-fd-connect"), @@ -253,6 +265,9 @@ TEST_F(RunOnIncomingConnectIntervalTest, start_time_found_in_database) MockDatabase db(MockDatabase::Mode::kFindStartTime); RunSchedulerAndSimulateClientConnect(db); + EXPECT_TRUE(test_results.scheduler_sleep_count > 0) + << "The scheduler did not sleep"; + ASSERT_EQ(test_results.job_counter, 1) << "backup-bareos-fd-connect did not run"; @@ -266,6 +281,9 @@ TEST_F(RunOnIncomingConnectIntervalTest, start_time_found_wrong_time_string) MockDatabase db(MockDatabase::Mode::kFindStartTimeWrongString); RunSchedulerAndSimulateClientConnect(db); + EXPECT_TRUE(test_results.scheduler_sleep_count > 0) + << "The scheduler did not sleep"; + ASSERT_EQ(test_results.job_counter, 0) << "backup-bareos-fd-connect did not run"; } From f821c4fa5a46425501a8c7f1840a3f2c19eb5b03 Mon Sep 17 00:00:00 2001 From: Philipp Storz Date: Fri, 10 Jan 2020 08:30:04 +0100 Subject: [PATCH 06/10] systemtests: have individual piddir for each test --- systemtests/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/systemtests/CMakeLists.txt b/systemtests/CMakeLists.txt index 2bd8201d012..ead86549c30 100644 --- a/systemtests/CMakeLists.txt +++ b/systemtests/CMakeLists.txt @@ -160,7 +160,9 @@ macro(prepare_testdir_for_daemon_run) set(python_plugin_module_src_test_dir ${current_test_directory}/python-modules ) + set(piddir ${current_test_directory}/piddir) + file(MAKE_DIRECTORY ${piddir}) file(MAKE_DIRECTORY ${tmpdir}) file(MAKE_DIRECTORY ${archivedir}) file(MAKE_DIRECTORY ${logdir}) @@ -310,8 +312,6 @@ set(tmpsrc ${PROJECT_BINARY_DIR}/tmpsrc) set(working ${PROJECT_BINARY_DIR}/working) set(working_dir ${PROJECT_BINARY_DIR}/working) -set(piddir ${PROJECT_BINARY_DIR}/piddir) -file(MAKE_DIRECTORY ${piddir}) # set(BASEPORT ${dir_port}) From 549ab0afa32ad6556cfc4704ccbff6f2634efa07 Mon Sep 17 00:00:00 2001 From: Frank Ueberschar Date: Mon, 13 Jan 2020 14:40:43 +0100 Subject: [PATCH 07/10] systemtests: replace "bareos-dir" with environment variable BAREOS_DIRECTOR_BINARY - bconsole-pam-test --- systemtests/tests/bconsole-pam/testrunner | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systemtests/tests/bconsole-pam/testrunner b/systemtests/tests/bconsole-pam/testrunner index a575be86406..a5e3db510fa 100755 --- a/systemtests/tests/bconsole-pam/testrunner +++ b/systemtests/tests/bconsole-pam/testrunner @@ -58,7 +58,7 @@ if is_debug; then output=/dev/stdout fi -LD_PRELOAD=${PAM_WRAPPER_LIBRARIES} ${sbin}/bareos-dir -c etc/bareos -f ${BAREOS_DIR_OPTIONS} >$output 2>&1 & +LD_PRELOAD=${PAM_WRAPPER_LIBRARIES} ${BAREOS_DIRECTOR_BINARY} -c etc/bareos -f ${BAREOS_DIR_OPTIONS} >$output 2>&1 & sleep 1 From ab0eed8b7118fe139d30c2d31f2a797162f923c3 Mon Sep 17 00:00:00 2001 From: Frank Ueberschar Date: Mon, 13 Jan 2020 14:41:59 +0100 Subject: [PATCH 08/10] systemtests: slow down each backup-job to use all devices - multiplied-device-test - used the bandwidth limit to increase backup time in order to achieve that all three devices must be used to run all backups simultaneously --- .../etc/bareos/bareos-dir.d/job/backup-to-pool1.conf.in | 1 + .../etc/bareos/bareos-dir.d/job/backup-to-pool2.conf.in | 1 + .../etc/bareos/bareos-dir.d/job/backup-to-pool3.conf.in | 1 + 3 files changed, 3 insertions(+) diff --git a/systemtests/tests/multiplied-device-test/etc/bareos/bareos-dir.d/job/backup-to-pool1.conf.in b/systemtests/tests/multiplied-device-test/etc/bareos/bareos-dir.d/job/backup-to-pool1.conf.in index 5533746455f..1a2a96cafb2 100644 --- a/systemtests/tests/multiplied-device-test/etc/bareos/bareos-dir.d/job/backup-to-pool1.conf.in +++ b/systemtests/tests/multiplied-device-test/etc/bareos/bareos-dir.d/job/backup-to-pool1.conf.in @@ -3,5 +3,6 @@ Job { JobDefs = "DefaultJob" Client = "bareos-fd" MaximumConcurrentJobs = 10 + MaximumBandwidth=50k/s Pool = Pool1 } diff --git a/systemtests/tests/multiplied-device-test/etc/bareos/bareos-dir.d/job/backup-to-pool2.conf.in b/systemtests/tests/multiplied-device-test/etc/bareos/bareos-dir.d/job/backup-to-pool2.conf.in index 168638e9aea..9b20813a0be 100644 --- a/systemtests/tests/multiplied-device-test/etc/bareos/bareos-dir.d/job/backup-to-pool2.conf.in +++ b/systemtests/tests/multiplied-device-test/etc/bareos/bareos-dir.d/job/backup-to-pool2.conf.in @@ -3,5 +3,6 @@ Job { JobDefs = "DefaultJob" Client = "bareos-fd" MaximumConcurrentJobs = 10 + MaximumBandwidth=50k/s Pool = Pool2 } diff --git a/systemtests/tests/multiplied-device-test/etc/bareos/bareos-dir.d/job/backup-to-pool3.conf.in b/systemtests/tests/multiplied-device-test/etc/bareos/bareos-dir.d/job/backup-to-pool3.conf.in index b71167bc7ed..174c4e45d7e 100644 --- a/systemtests/tests/multiplied-device-test/etc/bareos/bareos-dir.d/job/backup-to-pool3.conf.in +++ b/systemtests/tests/multiplied-device-test/etc/bareos/bareos-dir.d/job/backup-to-pool3.conf.in @@ -3,5 +3,6 @@ Job { JobDefs = "DefaultJob" Client = "bareos-fd" MaximumConcurrentJobs = 10 + MaximumBandwidth=100k/s Pool = Pool3 } From df13c94b21f25d900f18c626eb35186f0467bb1c Mon Sep 17 00:00:00 2001 From: Frank Ueberschar Date: Mon, 13 Jan 2020 15:24:00 +0100 Subject: [PATCH 09/10] tests: convert expected time string to time_t - do not use the hardcoded seconds-since-epoch because this will lead to timeozone difference, instead convert the time string --- core/src/tests/catalog.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/tests/catalog.cc b/core/src/tests/catalog.cc index 7d66ae1408e..9247ae41bb6 100644 --- a/core/src/tests/catalog.cc +++ b/core/src/tests/catalog.cc @@ -184,5 +184,5 @@ TEST_F(CatalogTest, database) time_t time_converted = static_cast(StrToUtime(stime.data())); - EXPECT_EQ(time_converted, 1574863489); + EXPECT_EQ(time_converted, StrToUtime("2019-11-27 15:04:49")); } From 05df3709810890f21721cdce476c16992a4d16e5 Mon Sep 17 00:00:00 2001 From: Philipp Storz Date: Wed, 15 Jan 2020 13:38:01 +0100 Subject: [PATCH 10/10] systemtests: reload tests: use $BAREOS_DIRECTOR_BINARY instead of bareos-dir --- .../tests/reload-works-on-adding-client-resource/testrunner | 2 +- .../reload-works-on-adding-duplicate-job-resource/testrunner | 2 +- .../tests/reload-works-on-adding-empty-job-resource/testrunner | 2 +- .../reload-works-on-adding-second-director-resource/testrunner | 2 +- .../tests/reload-works-on-adding-uncommented-string/testrunner | 2 +- systemtests/tests/reload-works-on-unchanged-config/testrunner | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/systemtests/tests/reload-works-on-adding-client-resource/testrunner b/systemtests/tests/reload-works-on-adding-client-resource/testrunner index 4ada9d3b43f..5c4df32d383 100755 --- a/systemtests/tests/reload-works-on-adding-client-resource/testrunner +++ b/systemtests/tests/reload-works-on-adding-client-resource/testrunner @@ -33,7 +33,7 @@ stop_director() { start_director() { "${scripts}/bareos-ctl-dir" start "$director_debug_level" - director_pid=$(pidof bareos-dir) + director_pid=$(pidof ${BAREOS_DIRECTOR_BINARY}) if [ -z "$director_pid" ]; then exit_with_error "Bareos director could not be started" diff --git a/systemtests/tests/reload-works-on-adding-duplicate-job-resource/testrunner b/systemtests/tests/reload-works-on-adding-duplicate-job-resource/testrunner index 4a62992044d..7740d7b6a2e 100755 --- a/systemtests/tests/reload-works-on-adding-duplicate-job-resource/testrunner +++ b/systemtests/tests/reload-works-on-adding-duplicate-job-resource/testrunner @@ -32,7 +32,7 @@ stop_director() { start_director() { "${scripts}/bareos-ctl-dir" start "$director_debug_level" - director_pid=$(pidof bareos-dir) + director_pid=$(pidof ${BAREOS_DIRECTOR_BINARY}) if [ -z "$director_pid" ]; then exit_with_error "Bareos director could not be started" diff --git a/systemtests/tests/reload-works-on-adding-empty-job-resource/testrunner b/systemtests/tests/reload-works-on-adding-empty-job-resource/testrunner index 538dbf57899..d328c5c84a6 100755 --- a/systemtests/tests/reload-works-on-adding-empty-job-resource/testrunner +++ b/systemtests/tests/reload-works-on-adding-empty-job-resource/testrunner @@ -32,7 +32,7 @@ stop_director() { start_director() { "${scripts}/bareos-ctl-dir" start "$director_debug_level" - director_pid=$(pidof bareos-dir) + director_pid=$(pidof ${BAREOS_DIRECTOR_BINARY}) if [ -z "$director_pid" ]; then exit_with_error "Bareos director could not be started" diff --git a/systemtests/tests/reload-works-on-adding-second-director-resource/testrunner b/systemtests/tests/reload-works-on-adding-second-director-resource/testrunner index 796dc834eda..6a6c5f20b87 100755 --- a/systemtests/tests/reload-works-on-adding-second-director-resource/testrunner +++ b/systemtests/tests/reload-works-on-adding-second-director-resource/testrunner @@ -32,7 +32,7 @@ stop_director() { start_director() { "${scripts}/bareos-ctl-dir" start "$director_debug_level" - director_pid=$(pidof bareos-dir) + director_pid=$(pidof ${BAREOS_DIRECTOR_BINARY}) if [ -z "$director_pid" ]; then exit_with_error "Bareos director could not be started" diff --git a/systemtests/tests/reload-works-on-adding-uncommented-string/testrunner b/systemtests/tests/reload-works-on-adding-uncommented-string/testrunner index c77492c163f..0f23ce3776f 100755 --- a/systemtests/tests/reload-works-on-adding-uncommented-string/testrunner +++ b/systemtests/tests/reload-works-on-adding-uncommented-string/testrunner @@ -32,7 +32,7 @@ stop_director() { start_director() { "${scripts}/bareos-ctl-dir" start "$director_debug_level" - director_pid=$(pidof bareos-dir) + director_pid=$(pidof ${BAREOS_DIRECTOR_BINARY}) if [ -z "$director_pid" ]; then exit_with_error "Bareos director could not be started" diff --git a/systemtests/tests/reload-works-on-unchanged-config/testrunner b/systemtests/tests/reload-works-on-unchanged-config/testrunner index c0aedad18d2..cfea078357f 100755 --- a/systemtests/tests/reload-works-on-unchanged-config/testrunner +++ b/systemtests/tests/reload-works-on-unchanged-config/testrunner @@ -31,7 +31,7 @@ stop_director() { start_director() { "${scripts}/bareos-ctl-dir" start "$director_debug_level" - director_pid=$(pidof bareos-dir) + director_pid=$(pidof ${BAREOS_DIRECTOR_BINARY}) if [ -z "$director_pid" ]; then exit_with_error "Bareos director could not be started"