summaryrefslogtreecommitdiffstats
path: root/ipc/ipdl/test/cxx/TestShmem.cpp
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:13:33 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:13:33 +0000
commit086c044dc34dfc0f74fbe41f4ecb402b2cd34884 (patch)
treea4f824bd33cb075dd5aa3eb5a0a94af221bbe83a /ipc/ipdl/test/cxx/TestShmem.cpp
parentAdding debian version 124.0.1-1. (diff)
downloadfirefox-086c044dc34dfc0f74fbe41f4ecb402b2cd34884.tar.xz
firefox-086c044dc34dfc0f74fbe41f4ecb402b2cd34884.zip
Merging upstream version 125.0.1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'ipc/ipdl/test/cxx/TestShmem.cpp')
-rw-r--r--ipc/ipdl/test/cxx/TestShmem.cpp106
1 files changed, 0 insertions, 106 deletions
diff --git a/ipc/ipdl/test/cxx/TestShmem.cpp b/ipc/ipdl/test/cxx/TestShmem.cpp
deleted file mode 100644
index 0a778e5322..0000000000
--- a/ipc/ipdl/test/cxx/TestShmem.cpp
+++ /dev/null
@@ -1,106 +0,0 @@
-#include "TestShmem.h"
-
-#include "IPDLUnitTests.h" // fail etc.
-
-namespace mozilla {
-namespace _ipdltest {
-
-//-----------------------------------------------------------------------------
-// Parent
-
-void TestShmemParent::Main() {
- Shmem mem;
- Shmem unsafe;
-
- size_t size = 12345;
- if (!AllocShmem(size, &mem)) fail("can't alloc shmem");
- if (!AllocUnsafeShmem(size, &unsafe)) fail("can't alloc shmem");
-
- if (mem.Size<char>() != size)
- fail("shmem is wrong size: expected %lu, got %lu", size, mem.Size<char>());
- if (unsafe.Size<char>() != size)
- fail("shmem is wrong size: expected %lu, got %lu", size,
- unsafe.Size<char>());
-
- char* ptr = mem.get<char>();
- memcpy(ptr, "Hello!", sizeof("Hello!"));
-
- char* unsafeptr = unsafe.get<char>();
- memcpy(unsafeptr, "Hello!", sizeof("Hello!"));
-
- Shmem unsafecopy = unsafe;
- if (!SendGive(std::move(mem), std::move(unsafe), size))
- fail("can't send Give()");
-
- // uncomment the following line for a (nondeterministic) surprise!
- // char c1 = *ptr; (void)c1;
-
- // uncomment the following line for a deterministic surprise!
- // char c2 = *mem.get<char>(); (void)c2;
-
- // unsafe shmem gets rid of those checks
- char uc1 = *unsafeptr;
- (void)uc1;
- char uc2 = *unsafecopy.get<char>();
- (void)uc2;
-}
-
-mozilla::ipc::IPCResult TestShmemParent::RecvTake(Shmem&& mem, Shmem&& unsafe,
- const size_t& expectedSize) {
- if (mem.Size<char>() != expectedSize)
- fail("expected shmem size %lu, but it has size %lu", expectedSize,
- mem.Size<char>());
- if (unsafe.Size<char>() != expectedSize)
- fail("expected shmem size %lu, but it has size %lu", expectedSize,
- unsafe.Size<char>());
-
- if (strcmp(mem.get<char>(), "And yourself!"))
- fail("expected message was not written");
- if (strcmp(unsafe.get<char>(), "And yourself!"))
- fail("expected message was not written");
-
- if (!DeallocShmem(mem)) fail("DeallocShmem");
- if (!DeallocShmem(unsafe)) fail("DeallocShmem");
-
- Close();
-
- return IPC_OK();
-}
-
-//-----------------------------------------------------------------------------
-// Child
-
-mozilla::ipc::IPCResult TestShmemChild::RecvGive(Shmem&& mem, Shmem&& unsafe,
- const size_t& expectedSize) {
- if (mem.Size<char>() != expectedSize)
- fail("expected shmem size %lu, but it has size %lu", expectedSize,
- mem.Size<char>());
- if (unsafe.Size<char>() != expectedSize)
- fail("expected shmem size %lu, but it has size %lu", expectedSize,
- unsafe.Size<char>());
-
- if (strcmp(mem.get<char>(), "Hello!"))
- fail("expected message was not written");
- if (strcmp(unsafe.get<char>(), "Hello!"))
- fail("expected message was not written");
-
- char* unsafeptr = unsafe.get<char>();
-
- memcpy(mem.get<char>(), "And yourself!", sizeof("And yourself!"));
- memcpy(unsafeptr, "And yourself!", sizeof("And yourself!"));
-
- Shmem unsafecopy = unsafe;
- if (!SendTake(std::move(mem), std::move(unsafe), expectedSize))
- fail("can't send Take()");
-
- // these checks also shouldn't fail in the child
- char uc1 = *unsafeptr;
- (void)uc1;
- char uc2 = *unsafecopy.get<char>();
- (void)uc2;
-
- return IPC_OK();
-}
-
-} // namespace _ipdltest
-} // namespace mozilla