Skip to content

Commit

Permalink
More tests
Browse files Browse the repository at this point in the history
  • Loading branch information
nibanks committed Jul 20, 2024
1 parent e28c54d commit d316b37
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 6 deletions.
2 changes: 0 additions & 2 deletions inc/cxplat.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,6 @@ struct CxPlatEvent {
CxPlatEvent() noexcept { CxPlatEventInitialize(&Handle, FALSE, FALSE); }
CxPlatEvent(bool ManualReset) noexcept { CxPlatEventInitialize(&Handle, ManualReset, FALSE); }
CxPlatEvent(CXPLAT_EVENT event) noexcept : Handle(event) { }
~CxPlatEvent() noexcept { CxPlatEventUninitialize(Handle); }
CXPLAT_EVENT* operator &() noexcept { return &Handle; }
operator CXPLAT_EVENT() const noexcept { return Handle; }
void Set() { CxPlatEventSet(Handle); }
void Reset() { CxPlatEventReset(Handle); }
Expand Down
18 changes: 18 additions & 0 deletions src/test/lib/LockTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,24 @@ void CxPlatTestLockBasic()
TEST_FALSE(CXPLAT_AT_DISPATCH());
}
#endif

{
CxPlatEvent Event;
CxPlatLock Lock;
struct Context {
CxPlatEvent* Event;
CxPlatLock* Lock;
} Ctx = { &Event, &Lock };
Lock.Acquire();
CxPlatAsyncT<Context> Async([](Context* Ctx) {
Ctx->Lock->Acquire();
Ctx->Event->Set();
Ctx->Lock->Release();
}, &Ctx);
TEST_FALSE(Event.WaitTimeout(500));
Lock.Release();
TEST_TRUE(Event.WaitTimeout(2000));
}
}

void CxPlatTestLockReadWrite()
Expand Down
8 changes: 4 additions & 4 deletions src/test/lib/ThreadTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -64,14 +64,14 @@ void CxPlatTestThreadBasic()
void CxPlatTestThreadAsync()
{
{
CxPlatAsync Async([](void*) -> void {
CxPlatAsync Async([](void*) {
// no-op
});
}

{
uint32_t Ctx = 0;
CxPlatAsyncT<uint32_t> Async([](uint32_t* Ctx) -> void {
CxPlatAsyncT<uint32_t> Async([](uint32_t* Ctx) {
*Ctx = 123;
}, &Ctx);
Async.Wait();
Expand All @@ -80,7 +80,7 @@ void CxPlatTestThreadAsync()

{
CXPLAT_THREAD_ID ThreadId = INITIAL_THREAD_ID_VALUE;
CxPlatAsyncT<CXPLAT_THREAD_ID> Async([](CXPLAT_THREAD_ID* Ctx) -> void {
CxPlatAsyncT<CXPLAT_THREAD_ID> Async([](CXPLAT_THREAD_ID* Ctx) {
*Ctx = CxPlatCurThreadID();
}, &ThreadId);

Expand All @@ -91,7 +91,7 @@ void CxPlatTestThreadAsync()
#if defined(CX_PLATFORM_WINUSER) || defined(CX_PLATFORM_WINKERNEL)
{
intptr_t Ctx = 0;
CxPlatAsyncT<intptr_t> Async([](intptr_t* Ctx) -> void {
CxPlatAsyncT<intptr_t> Async([](intptr_t* Ctx) {
CxPlatSleep(2000);
*Ctx = (intptr_t)(0xdeadbeaf);
}, &Ctx);
Expand Down

0 comments on commit d316b37

Please sign in to comment.