BACKPORT FIX: update test file against upstream
authorJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Tue, 26 May 2020 18:16:42 +0000 (14:16 -0400)
committerJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Tue, 26 May 2020 18:29:42 +0000 (14:29 -0400)
Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Change-Id: I8fa36d6bd4cbf1196bdf031360f118a8c3aa3cc0

tests/regression/tools/working-directory/test_relayd_working_directory

index bf486893fc6b8f13519503793b26b662710403fd..8a261af213631662da28b1643e7c8b6eef305d77 100755 (executable)
 
 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
This page took 0.031458 seconds and 5 git commands to generate.