summaryrefslogtreecommitdiff
path: root/lib/scudo/standalone/tests/primary_test.cpp
diff options
context:
space:
mode:
authorKostya Kortchinsky <kostyak@google.com>2019-10-09 15:09:28 +0000
committerKostya Kortchinsky <kostyak@google.com>2019-10-09 15:09:28 +0000
commite5d05814ac964a37eb336fb5a743227e55e85a41 (patch)
tree5f523fd7bc248b230732ec33ca41cd2679d36b2c /lib/scudo/standalone/tests/primary_test.cpp
parentb185f4f2ef7c96095d31e09b041ffe81b4b24571 (diff)
downloadcompiler-rt-e5d05814ac964a37eb336fb5a743227e55e85a41.tar.gz
[scudo][standalone] Get statistics in a char buffer
Summary: Following up on D68471, this CL introduces some `getStats` APIs to gather statistics in char buffers (`ScopedString` really) instead of printing them out right away. Ultimately `printStats` will just output the buffer, but that allows us to potentially do some work on the intermediate buffer, and can be used for a `mallocz` type of functionality. This allows us to pretty much get rid of all the `Printf` calls around, but I am keeping the function in for debugging purposes. This changes the existing tests to use the new APIs when required. I will add new tests as suggested in D68471 in another CL. Reviewers: morehouse, hctim, vitalybuka, eugenis, cferris Reviewed By: morehouse Subscribers: delcypher, #sanitizers, llvm-commits Tags: #llvm, #sanitizers Differential Revision: https://reviews.llvm.org/D68653 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@374173 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/scudo/standalone/tests/primary_test.cpp')
-rw-r--r--lib/scudo/standalone/tests/primary_test.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/lib/scudo/standalone/tests/primary_test.cpp b/lib/scudo/standalone/tests/primary_test.cpp
index a6cfc6bdb..7da7b25ca 100644
--- a/lib/scudo/standalone/tests/primary_test.cpp
+++ b/lib/scudo/standalone/tests/primary_test.cpp
@@ -46,7 +46,9 @@ template <typename Primary> static void testPrimary() {
}
Cache.destroy(nullptr);
Allocator->releaseToOS();
- Allocator->printStats();
+ scudo::ScopedString Str(1024);
+ Allocator->getStats(&Str);
+ Str.output();
}
TEST(ScudoPrimaryTest, BasicPrimary) {
@@ -86,7 +88,9 @@ TEST(ScudoPrimaryTest, Primary64OOM) {
}
Cache.destroy(nullptr);
Allocator.releaseToOS();
- Allocator.printStats();
+ scudo::ScopedString Str(1024);
+ Allocator.getStats(&Str);
+ Str.output();
EXPECT_EQ(AllocationFailed, true);
Allocator.unmapTestOnly();
}
@@ -125,7 +129,9 @@ template <typename Primary> static void testIteratePrimary() {
}
Cache.destroy(nullptr);
Allocator->releaseToOS();
- Allocator->printStats();
+ scudo::ScopedString Str(1024);
+ Allocator->getStats(&Str);
+ Str.output();
}
TEST(ScudoPrimaryTest, PrimaryIterate) {
@@ -180,7 +186,9 @@ template <typename Primary> static void testPrimaryThreaded() {
for (auto &T : Threads)
T.join();
Allocator->releaseToOS();
- Allocator->printStats();
+ scudo::ScopedString Str(1024);
+ Allocator->getStats(&Str);
+ Str.output();
}
TEST(ScudoPrimaryTest, PrimaryThreaded) {
@@ -203,8 +211,7 @@ template <typename Primary> static void testReleaseToOS() {
Cache.init(nullptr, Allocator.get());
const scudo::uptr Size = scudo::getPageSizeCached() * 2;
EXPECT_TRUE(Primary::canAllocate(Size));
- const scudo::uptr ClassId =
- Primary::SizeClassMap::getClassIdBySize(Size);
+ const scudo::uptr ClassId = Primary::SizeClassMap::getClassIdBySize(Size);
void *P = Cache.allocate(ClassId);
EXPECT_NE(P, nullptr);
Cache.deallocate(ClassId, P);