diff options
author | viettrungluu@chromium.org <viettrungluu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-25 21:28:51 +0000 |
---|---|---|
committer | viettrungluu@chromium.org <viettrungluu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-25 21:28:51 +0000 |
commit | 47c879d145af5a3a765e2cb1ac847401f962b7de (patch) | |
tree | ae61dcd4ad5246dfb9b39eacf44dff5b23d4c2fa /mojo | |
parent | e2a68853a99daebf661ba4c8596244d280321d9a (diff) | |
download | chromium_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.cc | 20 |
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 |