Serenity Operating System
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}