Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3338)

Unified Diff: base/memory/shared_memory_unittest.cc

Issue 1446363003: Deleted OS_WIN and all Windows specific files from base. (Closed) Base URL: https://github.com/domokit/mojo.git@base_tests
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/memory/shared_memory.h ('k') | base/memory/shared_memory_win.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/memory/shared_memory_unittest.cc
diff --git a/base/memory/shared_memory_unittest.cc b/base/memory/shared_memory_unittest.cc
index 6fe57060e6fcd6cd83853875fcea4c1595c52138..1aa88017dabe9c2d2f2e02e02c7f9e6a0221bcc5 100644
--- a/base/memory/shared_memory_unittest.cc
+++ b/base/memory/shared_memory_unittest.cc
@@ -28,10 +28,6 @@
#include <unistd.h>
#endif
-#if defined(OS_WIN)
-#include "base/win/scoped_handle.h"
-#endif
-
static const int kNumThreads = 5;
#if !defined(OS_IOS) // iOS does not allow multiple processes.
static const int kNumTasks = 5;
@@ -90,56 +86,6 @@ class MultipleThreadMain : public PlatformThread::Delegate {
const char* const MultipleThreadMain::s_test_name_ =
"SharedMemoryOpenThreadTest";
-// TODO(port):
-// This test requires the ability to pass file descriptors between processes.
-// We haven't done that yet in Chrome for POSIX.
-#if defined(OS_WIN)
-// Each thread will open the shared memory. Each thread will take the memory,
-// and keep changing it while trying to lock it, with some small pauses in
-// between. Verify that each thread's value in the shared memory is always
-// correct.
-class MultipleLockThread : public PlatformThread::Delegate {
- public:
- explicit MultipleLockThread(int id) : id_(id) {}
- ~MultipleLockThread() override {}
-
- // PlatformThread::Delegate interface.
- void ThreadMain() override {
- const uint32 kDataSize = sizeof(int);
- SharedMemoryHandle handle = NULL;
- {
- SharedMemory memory1;
- EXPECT_TRUE(memory1.CreateNamedDeprecated(
- "SharedMemoryMultipleLockThreadTest", true, kDataSize));
- EXPECT_TRUE(memory1.ShareToProcess(GetCurrentProcess(), &handle));
- // TODO(paulg): Implement this once we have a posix version of
- // SharedMemory::ShareToProcess.
- EXPECT_TRUE(true);
- }
-
- SharedMemory memory2(handle, false);
- EXPECT_TRUE(memory2.Map(kDataSize));
- volatile int* const ptr = static_cast<int*>(memory2.memory());
-
- for (int idx = 0; idx < 20; idx++) {
- memory2.LockDeprecated();
- int i = (id_ << 16) + idx;
- *ptr = i;
- PlatformThread::Sleep(TimeDelta::FromMilliseconds(1));
- EXPECT_EQ(*ptr, i);
- memory2.UnlockDeprecated();
- }
-
- memory2.Close();
- }
-
- private:
- int id_;
-
- DISALLOW_COPY_AND_ASSIGN(MultipleLockThread);
-};
-#endif
-
} // namespace
// Android doesn't support SharedMemory::Open/Delete/
@@ -320,34 +266,6 @@ TEST(SharedMemoryTest, MultipleThreads) {
MultipleThreadMain::CleanUp();
}
-// TODO(port): this test requires the MultipleLockThread class
-// (defined above), which requires the ability to pass file
-// descriptors between processes. We haven't done that yet in Chrome
-// for POSIX.
-#if defined(OS_WIN)
-// Create a set of threads to each open a shared memory segment and write to it
-// with the lock held. Verify that they are always reading/writing consistent
-// data.
-TEST(SharedMemoryTest, Lock) {
- PlatformThreadHandle thread_handles[kNumThreads];
- MultipleLockThread* thread_delegates[kNumThreads];
-
- // Spawn the threads.
- for (int index = 0; index < kNumThreads; ++index) {
- PlatformThreadHandle pth;
- thread_delegates[index] = new MultipleLockThread(index);
- EXPECT_TRUE(PlatformThread::Create(0, thread_delegates[index], &pth));
- thread_handles[index] = pth;
- }
-
- // Wait for the threads to finish.
- for (int index = 0; index < kNumThreads; ++index) {
- PlatformThread::Join(thread_handles[index]);
- delete thread_delegates[index];
- }
-}
-#endif
-
// Allocate private (unique) shared memory with an empty string for a
// name. Make sure several of them don't point to the same thing as
// we might expect if the names are equal.
@@ -449,37 +367,9 @@ TEST(SharedMemoryTest, ShareReadOnly) {
EXPECT_EQ(EACCES, mmap_errno) << strerror(mmap_errno);
if (writable != MAP_FAILED)
EXPECT_EQ(0, munmap(writable, readonly_shmem.mapped_size()));
-
-#elif defined(OS_WIN)
- EXPECT_EQ(NULL, MapViewOfFile(handle, FILE_MAP_WRITE, 0, 0, 0))
- << "Shouldn't be able to map memory writable.";
-
- HANDLE temp_handle;
- BOOL rv = ::DuplicateHandle(GetCurrentProcess(),
- handle,
- GetCurrentProcess(),
- &temp_handle,
- FILE_MAP_ALL_ACCESS,
- false,
- 0);
- EXPECT_EQ(FALSE, rv)
- << "Shouldn't be able to duplicate the handle into a writable one.";
- if (rv)
- base::win::ScopedHandle writable_handle(temp_handle);
- rv = ::DuplicateHandle(GetCurrentProcess(),
- handle,
- GetCurrentProcess(),
- &temp_handle,
- FILE_MAP_READ,
- false,
- 0);
- EXPECT_EQ(TRUE, rv)
- << "Should be able to duplicate the handle into a readable one.";
- if (rv)
- base::win::ScopedHandle writable_handle(temp_handle);
#else
#error Unexpected platform; write a test that tries to make 'handle' writable.
-#endif // defined(OS_POSIX) || defined(OS_WIN)
+#endif // defined(OS_POSIX)
}
TEST(SharedMemoryTest, ShareToSelf) {
« no previous file with comments | « base/memory/shared_memory.h ('k') | base/memory/shared_memory_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698