From: Jonathan Rajotte Date: Tue, 26 May 2020 18:16:42 +0000 (-0400) Subject: BACKPORT FIX: update test file against upstream X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=commitdiff_plain;h=b6df17eb3136465c1f7d568f9f7880be902bb5ff BACKPORT FIX: update test file against upstream Signed-off-by: Jonathan Rajotte Change-Id: I8fa36d6bd4cbf1196bdf031360f118a8c3aa3cc0 --- diff --git a/tests/regression/tools/working-directory/test_relayd_working_directory b/tests/regression/tools/working-directory/test_relayd_working_directory index bf486893f..8a261af21 100755 --- a/tests/regression/tools/working-directory/test_relayd_working_directory +++ b/tests/regression/tools/working-directory/test_relayd_working_directory @@ -17,12 +17,12 @@ TEST_DESC="Change working directory of process" -CURDIR=$(dirname $0)/ +CURDIR=$(dirname "$0")/ TESTDIR=$CURDIR/../../../ -DIR=$(readlink -f $TESTDIR) +DIR=$(readlink -f "$TESTDIR") -NUM_TESTS=28 +NUM_TESTS=35 source $TESTDIR/utils/utils.sh @@ -32,9 +32,12 @@ plan_tests $NUM_TESTS print_test_banner "$TEST_DESC" function test_relayd() { - local working_dir=$(mktemp -d) - local test_dir=$(readlink -f $TESTDIR) local relayd_bin_path="$DIR/../src/bin/lttng-relayd/$RELAYD_BIN" + local working_dir + local pid + local cwd + + working_dir=$(mktemp -d) diag "Test lttng-relayd normal mode change working directory" @@ -44,13 +47,12 @@ function test_relayd() # --sig-parent option but lttng-relayd does not have this feature yet. # Fall back on using polling of the value and unblock when the value is # the one we expect. In case of a failure the test will hang. - $relayd_bin_path --working-directory $working_dir > /dev/null 2>&1 & - RELAYD_PIDS=$! + $relayd_bin_path --working-directory "$working_dir" > /dev/null 2>&1 & + pid=$! while true; do - local cwd=$(readlink /proc/${RELAYD_PIDS}/cwd) - test "${working_dir}" = "${cwd}" - if [ $? -eq 0 ]; then + cwd=$(readlink "/proc/${pid}/cwd") + if test "$working_dir" = "$cwd"; then # Working dir for process is valid break fi @@ -61,161 +63,217 @@ function test_relayd() pass "Working directory changed" stop_lttng_relayd - rm -rf ${working_dir} + rm -rf "$working_dir" } function test_relayd_daemon() { - local working_dir=$(mktemp -d) + local working_dir + local cwd + local pid + + working_dir=$(mktemp -d) diag "Test lttng-relayd daemon mode change working directory" start_lttng_relayd_opt 1 "-d" "--working-directory $working_dir" - local cwd=$(readlink /proc/${RELAYD_PIDS}/cwd) + pid=$(pgrep "$RELAYD_MATCH") + ok $? "Found lttng-relayd" + + cwd=$(readlink "/proc/${pid}/cwd") - is "x${cwd}" "x${working_dir}" "Working directory changed" + is "$cwd" "$working_dir" "Working directory changed" stop_lttng_relayd - rm -rf ${working_dir} + rm -rf "$working_dir" } function test_relayd_daemon_no_working_dir() { local expected_working_dir="/" + local cwd + local pid diag "Test lttng-relayd daemon mode change working directory" start_lttng_relayd_opt 1 "-d" "" - local cwd=$(readlink /proc/${RELAYD_PIDS}/cwd) + pid=$(pgrep "$RELAYD_MATCH") + ok $? "Found lttng-relayd" - is "x${cwd}" "x${expected_working_dir}" "Working directory is ${expected_working_dir}" + cwd=$(readlink "/proc/${pid}/cwd") + + is "$cwd" "$expected_working_dir" "Working directory is $expected_working_dir" stop_lttng_relayd - rm -rf ${working_dir} + rm -rf "$working_dir" } function test_relayd_background() { - local working_dir=$(mktemp -d) + local working_dir + local cwd + local pid + + working_dir=$(mktemp -d) diag "Test lttng-relayd background mode change working directory" start_lttng_relayd_opt 1 "-b" "--working-directory $working_dir" - local cwd=$(readlink /proc/${RELAYD_PIDS}/cwd) + pid=$(pgrep "$RELAYD_MATCH") + ok $? "Found lttng-relayd" - is "x${cwd}" "x${working_dir}" "Working directory changed" + cwd=$(readlink "/proc/${pid}/cwd") + + is "$cwd" "$working_dir" "Working directory changed" stop_lttng_relayd - rm -rf ${working_dir} + rm -rf "$working_dir" } function test_relayd_background_no_working_dir() { local expected_working_dir="/" + local cwd + local pid + diag "Test lttng-relayd background working directory" start_lttng_relayd_opt 1 "-b" "" - local cwd=$(readlink /proc/${RELAYD_PIDS}/cwd) + pid=$(pgrep "$RELAYD_MATCH") + ok $? "Found lttng-relayd" - is "x${cwd}" "x${expected_working_dir}" "Working directory is ${expected_working_dir}" + cwd=$(readlink "/proc/${pid}/cwd") + + is "$cwd" "$expected_working_dir" "Working directory is $expected_working_dir" stop_lttng_relayd - rm -rf ${working_dir} + rm -rf "$working_dir" } function test_relayd_debug_permission() { - local working_dir=$(mktemp -d) - local output_pattern='Working directory is not writable' - ERROR_OUTPUT_DEST=$(mktemp -u) + local output_pattern='Working directory \".*\" is not writable' + local working_dir + local cwd + local pid + + working_dir=$(mktemp -d) diag "Test lttng-relayd change working directory on non writable directory" # Removing write access to working dir - okx chmod -w ${working_dir} + okx chmod -w "$working_dir" + # Redirect the error output to a temporary file + ERROR_OUTPUT_DEST=$(mktemp) start_lttng_relayd_opt 1 "-b" "-v --working-dir $working_dir" - local cwd=$(readlink /proc/${RELAYD_PIDS}/cwd) - is "x${cwd}" "x${working_dir}" "Workind directory changed" + pid=$(pgrep "$RELAYD_MATCH") + ok $? "Found lttng-relayd" - local output_content="$(cat ${ERROR_OUTPUT_DEST})" - like "x${output_content}" "$output_pattern" "Warning about missing write permission is present" + cwd=$(readlink "/proc/${pid}/cwd") + is "$cwd" "$working_dir" "Working directory changed" + + grep -q "$output_pattern" "$ERROR_OUTPUT_DEST" + ok $? "Warning about missing write permission is present" stop_lttng_relayd - rm -rf ${working_dir} ${ERROR_OUTPUT_DEST} + rm "$ERROR_OUTPUT_DEST" + rm -rf "$working_dir" "$ERROR_OUTPUT_DEST" ERROR_OUTPUT_DEST=/dev/null } function test_relayd_failure() { - local working_dir="$(mktemp -d)" - local working_dir_imaginary="${working_dir}/imaginary_directory" - local output_dest=$(mktemp -u) - local output_pattern='Error: Changing working directory' - local test_dir=$(readlink -f $TESTDIR) + local output_pattern='Failed to change working directory to' local relayd_bin_path="$DIR/../src/bin/lttng-relayd/$RELAYD_BIN" + local working_dir + local working_dir_imaginary + local output_dest + local pid + + working_dir="$(mktemp -d)" + working_dir_imaginary="${working_dir}/imaginary_directory" + output_dest=$(mktemp) + diag "Test lttng-relayd normal mode change non-existing directory" - $relayd_bin_path -b --working-directory $working_dir_imaginary > $output_dest 2>&1 + $relayd_bin_path -b --working-directory "$working_dir_imaginary" > "$output_dest" 2>&1 test $? -eq "1" ok $? "Expect failure to start lttng-relayd for non-existent working directory" - RELAYD_PIDS=$(pgrep $RELAYD_MATCH) - if [ -z "${RELAYD_PIDS}" ]; then + pid=$(pgrep "$RELAYD_MATCH") + if [ -z "$pid" ]; then pass "No lttng-relayd present" else fail "No lttng-relayd present" stop_lttng_relayd_notap fi - local output_content="$(cat ${output_dest})" - like "x${output_content}" "$output_pattern" "Error about invalid directory" + grep -q "$output_pattern" "$output_dest" + ok $? "Found error message: invalid directory" - rm -rf ${working_dir} ${output_dest} + rm "$output_dest" + rm -rf "$working_dir" } function test_relayd_env() { - local working_dir=$(mktemp -d) + local working_dir + local cwd + local pid + + working_dir=$(mktemp -d) diag "Test lttng-relayd change working directory from env. variable" export LTTNG_RELAYD_WORKING_DIRECTORY=${working_dir} start_lttng_relayd_opt 1 "-b" "" - local cwd=$(readlink /proc/${RELAYD_PIDS}/cwd) + pid=$(pgrep "$RELAYD_MATCH") + ok $? "Found lttng-relayd" - is "x${cwd}" "x${working_dir}" "Working directory changed" + cwd=$(readlink "/proc/$pid/cwd") + + is "$cwd" "$working_dir" "Working directory changed" stop_lttng_relayd - rm -rf ${working_dir} + rm -rf "$working_dir" unset LTTNG_RELAYD_WORKING_DIRECTORY } function test_relayd_cmdline_overwrite_env() { - local working_dir_env=$(mktemp -d) - local working_dir_cmdline=$(mktemp -d) + local working_dir_env + local working_dir_cmdline + local cwd + local pid + + working_dir_env=$(mktemp -d) + working_dir_cmdline=$(mktemp -d) diag "Test lttng-relayd change working directory command line overwrite env variable" export LTTNG_RELAYD_WORKING_DIRECTORY=${working_dir_env} start_lttng_relayd_opt 1 "-b" "--working-dir ${working_dir_cmdline}" - local cwd=$(readlink /proc/${RELAYD_PIDS}/cwd) + pid=$(pgrep "$RELAYD_MATCH") + ok $? "Found lttng-relayd" - is "x${cwd}" "x${working_dir_cmdline}" "Working directory is the one from command line" + cwd=$(readlink "/proc/$pid/cwd") + + is "$cwd" "$working_dir_cmdline" "Working directory is the one from command line" stop_lttng_relayd - rm -rf ${working_dir_env} ${working_dir_cmdline} + rm -rf "$working_dir_env" "$working_dir_cmdline" unset LTTNG_RELAYD_WORKING_DIRECTORY } + TESTS=( test_relayd test_relayd_daemon @@ -228,10 +286,9 @@ TESTS=( test_relayd_cmdline_overwrite_env ) -for fct_test in ${TESTS[@]}; +for fct_test in "${TESTS[@]}"; do - ${fct_test} - if [ $? -ne 0 ]; then + if ! ${fct_test}; then break; fi done