bats/stop_redhat.bats (89 lines of code) (raw):
#!/usr/bin/env bats
load test_helper
setup() {
init_redhat
stub_redhat
}
teardown() {
unstub_redhat
rm -fr "${TMP}"/*
}
@test "stop td-agent successfully (redhat)" {
echo 1234 > "${TMP}/var/run/td-agent/td-agent.pid"
touch "${TMP}/var/lock/subsys/td-agent"
stub kill "-TERM 1234 : true" \
"-0 1234 : false" \
"-0 1234 : false"
stub log_success_msg "td-agent : true"
run_service stop
assert_output <<EOS
Stopping td-agent:
EOS
assert_success
[ ! -f "${TMP}/var/lock/subsys/td-agent" ]
unstub kill
unstub log_success_msg
}
@test "stop td-agent but it has already been stopped (redhat)" {
echo 1234 > "${TMP}/var/run/td-agent/td-agent.pid"
touch "${TMP}/var/lock/subsys/td-agent"
stub kill "-TERM 1234 : false"
stub log_failure_msg "td-agent : true"
run_service stop
assert_output <<EOS
Stopping td-agent:
EOS
assert_failure # TODO: change this to success for compatibility between debian
[ -f "${TMP}/var/lock/subsys/td-agent" ]
unstub kill
unstub log_failure_msg
}
@test "failed to stop td-agent (redhat)" {
echo 1234 > "${TMP}/var/run/td-agent/td-agent.pid"
touch "${TMP}/var/lock/subsys/td-agent"
cat <<SH > "${TMP}/etc/sysconfig/td-agent"
STOPTIMEOUT=3
SH
stub kill "-TERM 1234 : true" \
"-0 1234 : true" \
"-0 1234 : true" \
"-0 1234 : true" \
"-0 1234 : true"
stub sleep "1 : true"
stub log_failure_msg "td-agent : true"
run_service stop
assert_output <<EOS
Stopping td-agent: Timeout error occurred trying to stop td-agent...
EOS
assert_failure
[ -f "${TMP}/var/lock/subsys/td-agent" ]
unstub kill
unstub log_failure_msg
}
@test "stop td-agent by name successfully (redhat)" {
rm -f "${TMP}/var/run/td-agent/td-agent.pid"
touch "${TMP}/var/lock/subsys/td-agent"
stub killproc "td-agent : true"
stub log_success_msg "td-agent : true"
run_service stop
assert_output <<EOS
Stopping td-agent:
EOS
assert_success
[ ! -f "${TMP}/var/lock/subsys/td-agent" ]
unstub killproc
unstub log_success_msg
}
@test "failed to stop td-agent by name (redhat)" {
rm -f "${TMP}/var/run/td-agent/td-agent.pid"
touch "${TMP}/var/lock/subsys/td-agent"
stub killproc "td-agent : false"
stub log_failure_msg "td-agent : true"
run_service stop
assert_output <<EOS
Stopping td-agent:
EOS
assert_failure
[ -f "${TMP}/var/lock/subsys/td-agent" ]
unstub killproc
unstub log_failure_msg
}