[+] IPC Mutex and Memory test
[*] Update loop [*] Update submodules
This commit is contained in:
parent
9ce2f7e63e
commit
9141a0015c
@ -1 +1 @@
|
|||||||
Subproject commit 44839e6234f6a8eb9c39a09a5ea8cd5ee348ac7f
|
Subproject commit 9f2ff9de1952c440b62772a51506493dfed927d4
|
@ -88,6 +88,64 @@ TEST(IPC, Semaphore)
|
|||||||
ASSERT_FALSE(semaphore->IsSignaled());
|
ASSERT_FALSE(semaphore->IsSignaled());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(IPC, Memory)
|
||||||
|
{
|
||||||
|
auto memory = Aurora::IPC::NewSharedMemory(4096);
|
||||||
|
ASSERT_TRUE(bool(memory));
|
||||||
|
|
||||||
|
auto handleString = memory->ExportToString();
|
||||||
|
ASSERT_TRUE(bool(handleString.size()));
|
||||||
|
AuLogDbg("Exported shared view handle: {}", handleString);
|
||||||
|
|
||||||
|
auto memoryImported = Aurora::IPC::ImportSharedMemory(handleString);
|
||||||
|
ASSERT_TRUE(bool(memoryImported));
|
||||||
|
|
||||||
|
static const AuString kHelloWorld = "Hello IPC";
|
||||||
|
AuMemcpy(memory->GetMemory().ptr, kHelloWorld.c_str(), kHelloWorld.size() + 1);
|
||||||
|
|
||||||
|
AuLogDbg("Shared Memory String: {}", memoryImported->GetMemory().Begin<char>());
|
||||||
|
|
||||||
|
ASSERT_EQ(memoryImported->GetMemory().Begin<char>(), kHelloWorld);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(IPC, Pipe)
|
||||||
|
{
|
||||||
|
auto pipe = Aurora::IPC::NewPipe();
|
||||||
|
ASSERT_TRUE(bool(pipe));
|
||||||
|
|
||||||
|
auto handleString = pipe->ExportToString();
|
||||||
|
ASSERT_TRUE(bool(handleString.size()));
|
||||||
|
AuLogDbg("Exported pipe handle: {}", handleString);
|
||||||
|
|
||||||
|
auto pipeImported = Aurora::IPC::ImportPipe(handleString);
|
||||||
|
ASSERT_TRUE(bool(pipeImported));
|
||||||
|
|
||||||
|
static const AuString kHelloWorld = "Hello IPC";
|
||||||
|
|
||||||
|
ASSERT_FALSE(pipe->IsSignaled());
|
||||||
|
ASSERT_FALSE(pipeImported->IsSignaled());
|
||||||
|
|
||||||
|
AuUInt bytesWritten;
|
||||||
|
ASSERT_TRUE(pipe->Write(AuMemoryViewStreamRead(kHelloWorld, bytesWritten), false));
|
||||||
|
ASSERT_EQ(bytesWritten, kHelloWorld.size());
|
||||||
|
|
||||||
|
ASSERT_TRUE(pipe->IsSignaled());
|
||||||
|
ASSERT_TRUE(pipeImported->IsSignaled());
|
||||||
|
|
||||||
|
AuString temp(kHelloWorld.size(), '\00');
|
||||||
|
AuUInt bytesRead;
|
||||||
|
|
||||||
|
ASSERT_TRUE(pipeImported->Read(AuMemoryViewStreamWrite(temp.data(), temp.data() + temp.size(), bytesRead), false));
|
||||||
|
|
||||||
|
AuLogDbg("Pipe Message: {}", temp);
|
||||||
|
|
||||||
|
ASSERT_EQ(bytesRead, kHelloWorld.size());
|
||||||
|
ASSERT_EQ(temp, kHelloWorld);
|
||||||
|
|
||||||
|
ASSERT_FALSE(pipe->IsSignaled());
|
||||||
|
ASSERT_FALSE(pipeImported->IsSignaled());
|
||||||
|
}
|
||||||
|
|
||||||
void RunTests()
|
void RunTests()
|
||||||
{
|
{
|
||||||
Aurora::RuntimeStartInfo info;
|
Aurora::RuntimeStartInfo info;
|
||||||
|
@ -34,7 +34,7 @@ TEST(Loop, Semaphore)
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
auto semCCallback = AuMakeShared<Aurora::Loop::ILoopSourceSubscriberExFunctional>([](const AuSPtr<Aurora::Loop::ILoopSource> &source) -> bool
|
auto semCCallback = AuMakeShared<Aurora::Loop::ILoopSourceSubscriberExFunctional>([](const AuSPtr<Aurora::Loop::ILoopSource> &source, AuUInt8 pos) -> bool
|
||||||
{
|
{
|
||||||
AuLogInfo("This should not have been triggered from C");
|
AuLogInfo("This should not have been triggered from C");
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
Reference in New Issue
Block a user