diff options
author | Steven Laver <lavers@google.com> | 2019-11-14 08:37:29 -0800 |
---|---|---|
committer | Steven Laver <lavers@google.com> | 2019-11-14 08:37:29 -0800 |
commit | 8f54dd5edaa4ba55451f3602e5890b6f1ab807e6 (patch) | |
tree | 709208dd25e59100a8d3d9a7038a5c7ee1c8a50b /tests/malloc_test.cpp | |
parent | 19c0c9cd4892927004dac3252b67aac89e462c5c (diff) | |
parent | cb88137aebba97024bee4fff130f131924556ee5 (diff) |
Merge RP1A.191114.001
Change-Id: I19fb768a647d471d430af4b5c3f519d4125fdeee
Diffstat (limited to 'tests/malloc_test.cpp')
-rw-r--r-- | tests/malloc_test.cpp | 37 |
1 files changed, 23 insertions, 14 deletions
diff --git a/tests/malloc_test.cpp b/tests/malloc_test.cpp index 0407553b2..ebbd24793 100644 --- a/tests/malloc_test.cpp +++ b/tests/malloc_test.cpp @@ -358,15 +358,20 @@ TEST(malloc, valloc_overflow) { TEST(malloc, malloc_info) { #ifdef __BIONIC__ SKIP_WITH_HWASAN; // hwasan does not implement malloc_info - char* buf; - size_t bufsize; - FILE* memstream = open_memstream(&buf, &bufsize); - ASSERT_NE(nullptr, memstream); - ASSERT_EQ(0, malloc_info(0, memstream)); - ASSERT_EQ(0, fclose(memstream)); + + TemporaryFile tf; + ASSERT_TRUE(tf.fd != -1); + FILE* fp = fdopen(tf.fd, "w+"); + tf.release(); + ASSERT_TRUE(fp != nullptr); + ASSERT_EQ(0, malloc_info(0, fp)); + ASSERT_EQ(0, fclose(fp)); + + std::string contents; + ASSERT_TRUE(android::base::ReadFileToString(tf.path, &contents)); tinyxml2::XMLDocument doc; - ASSERT_EQ(tinyxml2::XML_SUCCESS, doc.Parse(buf)); + ASSERT_EQ(tinyxml2::XML_SUCCESS, doc.Parse(contents.c_str())); auto root = doc.FirstChildElement(); ASSERT_NE(nullptr, root); @@ -416,17 +421,21 @@ TEST(malloc, malloc_info_matches_mallinfo) { #ifdef __BIONIC__ SKIP_WITH_HWASAN; // hwasan does not implement malloc_info - char* buf; - size_t bufsize; - FILE* memstream = open_memstream(&buf, &bufsize); - ASSERT_NE(nullptr, memstream); + TemporaryFile tf; + ASSERT_TRUE(tf.fd != -1); + FILE* fp = fdopen(tf.fd, "w+"); + tf.release(); + ASSERT_TRUE(fp != nullptr); size_t mallinfo_before_allocated_bytes = mallinfo().uordblks; - ASSERT_EQ(0, malloc_info(0, memstream)); + ASSERT_EQ(0, malloc_info(0, fp)); size_t mallinfo_after_allocated_bytes = mallinfo().uordblks; - ASSERT_EQ(0, fclose(memstream)); + ASSERT_EQ(0, fclose(fp)); + + std::string contents; + ASSERT_TRUE(android::base::ReadFileToString(tf.path, &contents)); tinyxml2::XMLDocument doc; - ASSERT_EQ(tinyxml2::XML_SUCCESS, doc.Parse(buf)); + ASSERT_EQ(tinyxml2::XML_SUCCESS, doc.Parse(contents.c_str())); size_t total_allocated_bytes = 0; auto root = doc.FirstChildElement(); |