bats/stop_debian.bats (55 lines of code) (raw):
#!/usr/bin/env bats
load test_helper
setup() {
init_debian
stub_debian
}
teardown() {
unstub_debian
rm -fr "${TMP}"/*
}
@test "stop td-agent successfully (debian)" {
echo 1234 > "${TMP}/var/run/td-agent/td-agent.pid"
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
unstub kill
unstub log_success_msg
}
@test "stop td-agent but it has already been stopped (debian)" {
echo 1234 > "${TMP}/var/run/td-agent/td-agent.pid"
stub kill "-TERM 1234 : false"
stub log_failure_msg "td-agent : true"
run_service stop
assert_output <<EOS
Stopping td-agent:
EOS
assert_failure
unstub kill
unstub log_failure_msg
}
@test "failed to stop td-agent (debian)" {
echo 1234 > "${TMP}/var/run/td-agent/td-agent.pid"
cat <<SH > "${TMP}/etc/default/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
unstub kill
unstub log_failure_msg
}