bats/override_debian.bats (97 lines of code) (raw):
#!/usr/bin/env bats
load test_helper
setup() {
init_debian
}
teardown() {
rm -fr "${TMP}"/*
}
custom_run() {
cat > "${TMP}/etc/default/td-agent"
run_service "${1:-start}"
assert_success
}
@test "start td-agent with additional arguments successfully (debian)" {
rm -f "${TMP}/var/run/td-agent/td-agent.pid"
stub_debian
stub_path /sbin/start-stop-daemon "echo; echo start-stop-daemon; for arg; do echo \" \$arg\"; done"
stub log_success_msg "td-agent : true"
custom_run <<EOS
DAEMON_ARGS="--verbose --verbose"
EOS
assert_output <<EOS
Starting td-agent:
start-stop-daemon
--start
--quiet
--pidfile
${TMP}/var/run/td-agent/td-agent.pid
--exec
${TMP}/opt/td-agent/embedded/bin/ruby
-c
td-agent
--group
td-agent
--
${TMP}/usr/sbin/td-agent
--log
${TMP}/var/log/td-agent/td-agent.log
--verbose
--verbose
--use-v1-config
--daemon
${TMP}/var/run/td-agent/td-agent.pid
EOS
unstub_path /sbin/start-stop-daemon
unstub log_success_msg
unstub_debian
}
@test "start td-agent with custom configurations successfully (debian)" {
stub getent "passwd : echo custom_td_agent_user:x:501:501:,,,:/var/lib/custom_td_agent_user:/sbin/nologin"
stub chown "true" \
"true"
stub getent "group : echo custom_td_agent_group:x:501:"
mkdir -p "${TMP}/path/to"
rm -f "${TMP}/path/to/custom_td_agent_pid_file"
stub_path /sbin/start-stop-daemon "echo; echo start-stop-daemon; for arg; do echo \" \$arg\"; done"
touch "${TMP}/path/to/custom_td_agent_ruby"
chmod +x "${TMP}/path/to/custom_td_agent_ruby"
stub log_success_msg "custom_td_agent_name : true"
custom_run <<EOS
TD_AGENT_NAME="custom_td_agent_name"
TD_AGENT_HOME="${TMP}/path/to/custom_td_agent_home"
TD_AGENT_DEFAULT="${TMP}/path/to/custom_td_agent_default"
TD_AGENT_USER="custom_td_agent_user"
TD_AGENT_GROUP="custom_td_agent_group"
TD_AGENT_RUBY="${TMP}/path/to/custom_td_agent_ruby"
TD_AGENT_BIN_FILE="${TMP}/path/to/custom_td_agent_bin_file"
TD_AGENT_LOG_FILE="${TMP}/path/to/custom_td_agent_log_file"
TD_AGENT_PID_FILE="${TMP}/path/to/custom_td_agent_pid_file"
TD_AGENT_OPTIONS="--use-v0-config --no-supervisor"
EOS
assert_output <<EOS
Starting custom_td_agent_name:
start-stop-daemon
--start
--quiet
--pidfile
${TMP}/path/to/custom_td_agent_pid_file
--exec
${TMP}/path/to/custom_td_agent_ruby
-c
custom_td_agent_user
--group
custom_td_agent_group
--
${TMP}/path/to/custom_td_agent_bin_file
--log
${TMP}/path/to/custom_td_agent_log_file
--use-v0-config
--no-supervisor
--daemon
${TMP}/path/to/custom_td_agent_pid_file
EOS
unstub_path /sbin/start-stop-daemon
unstub log_success_msg
unstub getent
unstub chown
}