diff options
Diffstat (limited to 'tests/malloc_test.cpp')
-rw-r--r-- | tests/malloc_test.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/malloc_test.cpp b/tests/malloc_test.cpp index 55bd1499f..d692cf95c 100644 --- a/tests/malloc_test.cpp +++ b/tests/malloc_test.cpp @@ -84,6 +84,24 @@ TEST(malloc, calloc_std) { free(ptr); } +TEST(malloc, calloc_mem_init_disabled) { +#if defined(__BIONIC__) + // calloc should still zero memory if mem-init is disabled. + // With jemalloc the mallopts will fail but that shouldn't affect the + // execution of the test. + mallopt(M_THREAD_DISABLE_MEM_INIT, 1); + size_t alloc_len = 100; + char *ptr = reinterpret_cast<char*>(calloc(1, alloc_len)); + for (size_t i = 0; i < alloc_len; i++) { + ASSERT_EQ(0, ptr[i]); + } + free(ptr); + mallopt(M_THREAD_DISABLE_MEM_INIT, 0); +#else + GTEST_SKIP() << "bionic-only test"; +#endif +} + TEST(malloc, calloc_illegal) { SKIP_WITH_HWASAN; errno = 0; |