diff --git a/src/xenia/base/testing/threading_test.cc b/src/xenia/base/testing/threading_test.cc index 5c391b9de..11b4d559e 100644 --- a/src/xenia/base/testing/threading_test.cc +++ b/src/xenia/base/testing/threading_test.cc @@ -174,8 +174,23 @@ TEST_CASE("Signal and Wait") { } TEST_CASE("Wait on Event", "Event") { - // TODO(bwrsandman): - REQUIRE(true); + auto evt = Event::CreateAutoResetEvent(false); + WaitResult result; + + // Call wait on unset Event + result = Wait(evt.get(), false, 50ms); + REQUIRE(result == WaitResult::kTimeout); + + // Call wait on set Event + evt->Set(); + result = Wait(evt.get(), false, 50ms); + REQUIRE(result == WaitResult::kSuccess); + + // Call wait on now consumed Event + result = Wait(evt.get(), false, 50ms); + REQUIRE(result == WaitResult::kTimeout); + + // TODO(bwrsandman): test Reset() and Pulse() } TEST_CASE("Wait on Semaphore", "Semaphore") { diff --git a/src/xenia/base/threading_posix.cc b/src/xenia/base/threading_posix.cc index 3fdb4bdcb..beda0a48a 100644 --- a/src/xenia/base/threading_posix.cc +++ b/src/xenia/base/threading_posix.cc @@ -356,7 +356,7 @@ std::unique_ptr Event::CreateAutoResetEvent(bool initial_state) { return nullptr; } - return std::make_unique(PosixEvent(fd)); + return std::make_unique(fd); } // TODO(dougvj)