summaryrefslogtreecommitdiffstats
path: root/mojo
diff options
context:
space:
mode:
authorviettrungluu@chromium.org <viettrungluu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-25 21:28:51 +0000
committerviettrungluu@chromium.org <viettrungluu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-25 21:28:51 +0000
commit47c879d145af5a3a765e2cb1ac847401f962b7de (patch)
treeae61dcd4ad5246dfb9b39eacf44dff5b23d4c2fa /mojo
parente2a68853a99daebf661ba4c8596244d280321d9a (diff)
downloadchromium_src-47c879d145af5a3a765e2cb1ac847401f962b7de.zip
chromium_src-47c879d145af5a3a765e2cb1ac847401f962b7de.tar.gz
chromium_src-47c879d145af5a3a765e2cb1ac847401f962b7de.tar.bz2
Mojo: Fix RawSharedBuffer test of "too big" condition.
R=davemoore@chromium.org Review URL: https://codereview.chromium.org/211243005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@259336 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'mojo')
-rw-r--r--mojo/system/raw_shared_buffer_unittest.cc20
1 files changed, 12 insertions, 8 deletions
diff --git a/mojo/system/raw_shared_buffer_unittest.cc b/mojo/system/raw_shared_buffer_unittest.cc
index 18f453b..d9360f8 100644
--- a/mojo/system/raw_shared_buffer_unittest.cc
+++ b/mojo/system/raw_shared_buffer_unittest.cc
@@ -96,14 +96,7 @@ TEST(RawSharedBufferTest, Basic) {
// TODO(vtl): Bigger buffers.
-TEST(RawSharedBufferTest, InvalidArguments) {
-// TODO(vtl): This part of the test fails on Mac. Figure out why!
-/*
- // Too big.
- EXPECT_FALSE(RawSharedBuffer::Create(std::numeric_limits<size_t>::max()));
-*/
-
- // Invalid mappings:
+TEST(RawSharedBufferTest, InvalidMappings) {
scoped_refptr<RawSharedBuffer> buffer(RawSharedBuffer::Create(100));
ASSERT_TRUE(buffer);
@@ -130,6 +123,17 @@ TEST(RawSharedBufferTest, InvalidArguments) {
EXPECT_FALSE(buffer->IsValidMap(51, 50));
}
+TEST(RawSharedBufferTest, TooBig) {
+ // If |size_t| is 32-bit, it's quite possible/likely that |Create()| succeeds
+ // (since it only involves creating a 4 GB file).
+ const size_t kMaxSizeT = std::numeric_limits<size_t>::max();
+ scoped_refptr<RawSharedBuffer> buffer(RawSharedBuffer::Create(kMaxSizeT));
+ // But, assuming |sizeof(size_t) == sizeof(void*)|, mapping all of it should
+ // always fail.
+ if (buffer)
+ EXPECT_FALSE(buffer->Map(0, kMaxSizeT));
+}
+
// Tests that separate mappings get distinct addresses.
// Note: It's not inconceivable that the OS could ref-count identical mappings
// and reuse the same address, in which case we'd have to be more careful about