summaryrefslogtreecommitdiff
path: root/libutils/SharedBuffer_test.cpp
diff options
context:
space:
mode:
authorSteven Moreland <smoreland@google.com>2021-04-27 21:36:50 +0000
committerSteven Moreland <smoreland@google.com>2021-04-28 17:15:58 +0000
commit128826ca0774c1d69f75055e98e50cab302b4d9b (patch)
treec7aa29cd434f0f0487679f2407bbfe6e7e0cd9ba /libutils/SharedBuffer_test.cpp
parent3b0ec907f7b10d90afdca56f2c7082ab8d97e821 (diff)
libutils: sharedbuffer test - expect greatness!
This test previously expected failure - a machine which does not have 2GiB of memory. However, while today is becoming the past, 2GiB allocations working is no longer a dream of the future! Fixes: 186569165 Test: libutils_test Change-Id: I6a9ed608c0989d415b4e7735b8a451b8928b4083
Diffstat (limited to 'libutils/SharedBuffer_test.cpp')
-rw-r--r--libutils/SharedBuffer_test.cpp29
1 files changed, 25 insertions, 4 deletions
diff --git a/libutils/SharedBuffer_test.cpp b/libutils/SharedBuffer_test.cpp
index 3f960d2f5..1d6317ff7 100644
--- a/libutils/SharedBuffer_test.cpp
+++ b/libutils/SharedBuffer_test.cpp
@@ -32,10 +32,25 @@ TEST(SharedBufferTest, alloc_death) {
EXPECT_DEATH(android::SharedBuffer::alloc(SIZE_MAX - sizeof(android::SharedBuffer)), "");
}
-TEST(SharedBufferTest, alloc_null) {
- // Big enough to fail, not big enough to abort.
+TEST(SharedBufferTest, alloc_max) {
+ SKIP_WITH_HWASAN; // hwasan has a 2GiB allocation limit.
+
+ android::SharedBuffer* buf =
+ android::SharedBuffer::alloc(SIZE_MAX - sizeof(android::SharedBuffer) - 1);
+ if (buf != nullptr) {
+ EXPECT_NE(nullptr, buf->data());
+ buf->release();
+ }
+}
+
+TEST(SharedBufferTest, alloc_big) {
SKIP_WITH_HWASAN; // hwasan has a 2GiB allocation limit.
- ASSERT_EQ(nullptr, android::SharedBuffer::alloc(SIZE_MAX / 2));
+
+ android::SharedBuffer* buf = android::SharedBuffer::alloc(SIZE_MAX / 2);
+ if (buf != nullptr) {
+ EXPECT_NE(nullptr, buf->data());
+ buf->release();
+ }
}
TEST(SharedBufferTest, alloc_zero_size) {
@@ -56,7 +71,13 @@ TEST(SharedBufferTest, editResize_null) {
// Big enough to fail, not big enough to abort.
SKIP_WITH_HWASAN; // hwasan has a 2GiB allocation limit.
android::SharedBuffer* buf = android::SharedBuffer::alloc(10);
- ASSERT_EQ(nullptr, buf->editResize(SIZE_MAX / 2));
+ android::SharedBuffer* buf2 = buf->editResize(SIZE_MAX / 2);
+ if (buf2 == nullptr) {
+ buf->release();
+ } else {
+ EXPECT_NE(nullptr, buf2->data());
+ buf2->release();
+ }
}
TEST(SharedBufferTest, editResize_zero_size) {