Tests: fix: tmp dir can be a symlink
[lttng-tools.git] / tests / regression / tools / working-directory / test_relayd_working_directory
index 13e816d8a1d476309779ffdc44f0ae44258256c1..956cb780a6e368c7239aa51cff73b03f757bce65 100755 (executable)
@@ -22,11 +22,10 @@ TESTDIR=$CURDIR/../../../
 
 DIR=$(readlink -f "$TESTDIR")
 
-NUM_TESTS=27
+NUM_TESTS=35
 
 source $TESTDIR/utils/utils.sh
 
-
 #MUST set TESTDIR before calling those functions
 plan_tests $NUM_TESTS
 
@@ -38,7 +37,7 @@ function test_relayd()
        local pid
        local cwd
 
-       working_dir=$(mktemp -d)
+       working_dir=$(realpath "$(mktemp -d)")
 
        diag "Test lttng-relayd normal mode change working directory"
 
@@ -73,7 +72,7 @@ function test_relayd_daemon()
        local cwd
        local pid
 
-       working_dir=$(mktemp -d)
+       working_dir=$(realpath "$(mktemp -d)")
 
        diag "Test lttng-relayd daemon mode change working directory"
 
@@ -117,7 +116,7 @@ function test_relayd_background()
        local cwd
        local pid
 
-       working_dir=$(mktemp -d)
+       working_dir=$(realpath "$(mktemp -d)")
 
        diag "Test lttng-relayd background mode change working directory"
 
@@ -162,7 +161,7 @@ function test_relayd_debug_permission()
        local cwd
        local pid
 
-       working_dir=$(mktemp -d)
+       working_dir=$(realpath "$(mktemp -d)")
 
        diag "Test lttng-relayd change working directory on non writable directory"
 
@@ -198,7 +197,7 @@ function test_relayd_failure()
        local output_dest
        local pid
 
-       working_dir="$(mktemp -d)"
+       working_dir=$(realpath "$(mktemp -d)")
        working_dir_imaginary="${working_dir}/imaginary_directory"
        output_dest=$(mktemp)
 
@@ -223,6 +222,59 @@ function test_relayd_failure()
        rm -rf "$working_dir"
 }
 
+function test_relayd_env()
+{
+       local working_dir
+       local cwd
+       local pid
+
+       working_dir=$(mktemp -d)
+       working_dir=$(realpath "$(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" ""
+
+       pid=$(pgrep "$RELAYD_MATCH")
+       ok $? "Found lttng-relayd"
+
+       cwd=$(readlink "/proc/$pid/cwd")
+
+       is "$cwd" "$working_dir" "Working directory changed"
+
+       stop_lttng_relayd
+       rm -rf "$working_dir"
+       unset LTTNG_RELAYD_WORKING_DIRECTORY
+}
+
+function test_relayd_cmdline_overwrite_env()
+{
+       local working_dir_env
+       local working_dir_cmdline
+       local cwd
+       local pid
+
+       working_dir_env=$(realpath "$(mktemp -d)")
+       working_dir_cmdline=$(realpath "$(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}"
+
+       pid=$(pgrep "$RELAYD_MATCH")
+       ok $? "Found lttng-relayd"
+
+       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"
+       unset LTTNG_RELAYD_WORKING_DIRECTORY
+}
+
 TESTS=(
        test_relayd
        test_relayd_daemon
@@ -231,6 +283,8 @@ TESTS=(
        test_relayd_background_no_working_dir
        test_relayd_debug_permission
        test_relayd_failure
+       test_relayd_env
+       test_relayd_cmdline_overwrite_env
 )
 
 for fct_test in "${TESTS[@]}";
This page took 0.024626 seconds and 4 git commands to generate.