diff options
Diffstat (limited to 'compiler-rt/lib/scudo/standalone/tests/combined_test.cpp')
-rw-r--r-- | compiler-rt/lib/scudo/standalone/tests/combined_test.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/compiler-rt/lib/scudo/standalone/tests/combined_test.cpp b/compiler-rt/lib/scudo/standalone/tests/combined_test.cpp index d32ea89e0ea..9205467998e 100644 --- a/compiler-rt/lib/scudo/standalone/tests/combined_test.cpp +++ b/compiler-rt/lib/scudo/standalone/tests/combined_test.cpp @@ -279,3 +279,18 @@ TEST(ScudoCombinedTest, DeathCombined) { EXPECT_DEATH(Allocator->reallocate(P, Size * 2U), ""); EXPECT_DEATH(Allocator->getUsableSize(P), ""); } + +// Ensure that releaseToOS can be called prior to any other allocator +// operation without issue. +TEST(ScudoCombinedTest, ReleaseToOS) { + using AllocatorT = scudo::Allocator<DeathConfig>; + auto Deleter = [](AllocatorT *A) { + A->unmapTestOnly(); + delete A; + }; + std::unique_ptr<AllocatorT, decltype(Deleter)> Allocator(new AllocatorT, + Deleter); + Allocator->reset(); + + Allocator->releaseToOS(); +} |