Serenity Operating System
at master 23 lines 554 B view raw
1/* 2 * Copyright (c) 2022, the SerenityOS developers. 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#include <LibTest/TestCase.h> 8 9#include <AK/OwnPtr.h> 10 11static u64 deleter_call_count = 0; 12 13TEST_CASE(should_call_custom_deleter) 14{ 15 auto deleter = [](auto* p) { if (p) ++deleter_call_count; }; 16 auto ptr = OwnPtr<u64, decltype(deleter)> {}; 17 ptr.clear(); 18 EXPECT_EQ(0u, deleter_call_count); 19 ptr = adopt_own_if_nonnull(&deleter_call_count); 20 EXPECT_EQ(0u, deleter_call_count); 21 ptr.clear(); 22 EXPECT_EQ(1u, deleter_call_count); 23}