示例#1
0
static void connect_stream_init (void *v)
{
    struct connect_stream *s = v;

    int src_fd;

    switch (s->m_base.m_type)
    {
        case stdout_type:
            src_fd = STDOUT_FILENO;
            s->m_fd = open ("stdout", O_WRONLY | O_CREAT | O_TRUNC, 0644);
            break;
        case stderr_type:
            src_fd = STDERR_FILENO;
            s->m_fd = open ("stderr", O_WRONLY | O_CREAT | O_TRUNC, 0644);
            break;
        default:
            UNREACHABLE;
            src_fd = -1;
    }
    ATF_REQUIRE (s->m_fd != -1);

    s->m_base.m_sb_ptr = &s->m_base.m_sb;
    RE (atf_process_stream_init_connect (&s->m_base.m_sb, src_fd, s->m_fd));
}
示例#2
0
impl::stream_connect::stream_connect(const int src_fd, const int tgt_fd)
{
    atf_error_t err = atf_process_stream_init_connect(&m_sb, src_fd, tgt_fd);
    if (atf_is_error(err))
        throw_atf_error(err);
    m_inited = true;
}
示例#3
0
ATF_TC_BODY (stream_init_connect, tc)
{
    atf_process_stream_t sb;

    RE (atf_process_stream_init_connect (&sb, 1, 2));

    ATF_CHECK_EQ (atf_process_stream_type (&sb), atf_process_stream_type_connect);

    atf_process_stream_fini (&sb);
}