Beispiel #1
0
ATF_TC_BODY (status_signaled, tc)
{
    {
        const int rawstatus = fork_and_wait_child (child_sigkill);

        atf_process_status_t s;

        RE (atf_process_status_init (&s, rawstatus));
        ATF_CHECK (!atf_process_status_exited (&s));
        ATF_CHECK (atf_process_status_signaled (&s));
        ATF_CHECK_EQ (atf_process_status_termsig (&s), SIGKILL);
        ATF_CHECK (!atf_process_status_coredump (&s));
        atf_process_status_fini (&s);
    }

    {
        const int rawstatus = fork_and_wait_child (child_sigterm);

        atf_process_status_t s;

        RE (atf_process_status_init (&s, rawstatus));
        ATF_CHECK (!atf_process_status_exited (&s));
        ATF_CHECK (atf_process_status_signaled (&s));
        ATF_CHECK_EQ (atf_process_status_termsig (&s), SIGTERM);
        ATF_CHECK (!atf_process_status_coredump (&s));
        atf_process_status_fini (&s);
    }
}
Beispiel #2
0
ATF_TC_BODY (status_coredump, tc)
{
    struct rlimit rl;

    rl.rlim_cur = RLIM_INFINITY;
    rl.rlim_max = RLIM_INFINITY;
    if (setrlimit (RLIMIT_CORE, &rl) == -1)
        atf_tc_skip ("Cannot unlimit the core file size; check limits " "manually");

    const int rawstatus = fork_and_wait_child (child_sigquit);

    atf_process_status_t s;

    RE (atf_process_status_init (&s, rawstatus));
    ATF_CHECK (!atf_process_status_exited (&s));
    ATF_CHECK (atf_process_status_signaled (&s));
    ATF_CHECK_EQ (atf_process_status_termsig (&s), SIGQUIT);
    ATF_CHECK (atf_process_status_coredump (&s));
    atf_process_status_fini (&s);
}
Beispiel #3
0
bool
impl::status::coredump(void)
    const
{
    return atf_process_status_coredump(&m_status);
}