#include <gtest/gtest.h>
#include <cstring>
#include <iostream>
#include <system_error>
#include <cerrno>
using std::cout;
using std::endl;
TEST(event_test, blocking)
{
Event ev;
ev.write(1);
ev.write(2);
ASSERT_EQ(ev.read(), 3);
}
TEST(event_test, nonblocking)
{
Event ev(Event::nonblocking);
ev.write(1);
ev.write(2);
ASSERT_EQ(ev.read(), 3);
ASSERT_THROW(ev.read(), std::system_error);
ASSERT_EQ(errno, EAGAIN);
}
TEST(event_test, nonblocking_semaphore)
{
Event ev(Event::nonblocking|Event::semaphore);
ASSERT_THROW(ev.read(), std::system_error);
ev.write(1);
ev.write(2);
ASSERT_EQ(ev.read(), 1);
ASSERT_EQ(ev.read(), 1);
ASSERT_EQ(ev.read(), 1);
}
Signaling kernel event counter.
Signaling kernel event counter.
TEST(inet_example, client_server_stream_test)
[Inet client server]