2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 * @file test_shared_ptr.cpp
18 * @author Przemyslaw Dobrowolski (p.dobrowolsk@samsung.com)
20 * @brief This file is the implementation file of test shared ptr
22 #include <dpl/test/test_runner.h>
23 #include <dpl/shared_ptr.h>
25 RUNNER_TEST_GROUP_INIT(DPL)
27 RUNNER_TEST(SharedPtr_Zero)
29 DPL::SharedPtr<char> ptr;
32 RUNNER_ASSERT(!!!ptr);
33 RUNNER_ASSERT(ptr == DPL::SharedPtr<char>());
36 RUNNER_TEST(SharedPtr_NonZero)
38 DPL::SharedPtr<char> ptr(new char(7));
42 RUNNER_ASSERT(ptr != DPL::SharedPtr<char>());
45 RUNNER_TEST(SharedPtr_Copy)
47 DPL::SharedPtr<char> ptr1(new char(7));
48 DPL::SharedPtr<char> ptr2(new char(7));
50 RUNNER_ASSERT(ptr1 != ptr2);
54 RUNNER_ASSERT(ptr1 == ptr2);
57 RUNNER_TEST(SharedPtr_Reset)
59 DPL::SharedPtr<char> ptr(new char(7));
68 RUNNER_TEST(SharedPtr_RefCounting)
70 DPL::SharedPtr<char> ptr1(new char(7));
71 DPL::SharedPtr<char> ptr2;
75 RUNNER_ASSERT(ptr1 == ptr2);
76 RUNNER_ASSERT(ptr1.GetUseCount() == ptr2.GetUseCount());
77 RUNNER_ASSERT(ptr1.GetUseCount() == 2);
80 RUNNER_TEST(SharedPtr_Operators)
82 DPL::SharedPtr<char> ptr(new char(7));
84 RUNNER_ASSERT(*ptr == *ptr.Get());