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)
29 Description: Tests behaviour of null shared pointer
30 Expected: pointer should imitate null pointer
32 RUNNER_TEST(SharedPtr_Zero)
34 DPL::SharedPtr<char> ptr;
37 RUNNER_ASSERT(!!!ptr);
38 RUNNER_ASSERT(ptr == DPL::SharedPtr<char>());
42 Name: SharedPtr_NonZero
43 Description: Tests behaviour of not null shared pointer
44 Expected: pointer should imitate null pointer
46 RUNNER_TEST(SharedPtr_NonZero)
48 DPL::SharedPtr<char> ptr(new char(7));
52 RUNNER_ASSERT(ptr != DPL::SharedPtr<char>());
57 Description: Tests equality of shared pointer pointing same resource
58 Expected: pointers should imitate primitive pointer bahaviour
60 RUNNER_TEST(SharedPtr_Copy)
62 DPL::SharedPtr<char> ptr1(new char(7));
63 DPL::SharedPtr<char> ptr2(new char(7));
65 RUNNER_ASSERT(ptr1 != ptr2);
69 RUNNER_ASSERT(ptr1 == ptr2);
74 Description: Tests reseting shared pointer
75 Expected: pointers should imitate primitive pointer bahaviour after reset
77 RUNNER_TEST(SharedPtr_Reset)
79 DPL::SharedPtr<char> ptr(new char(7));
89 Name: SharedPtr_RefCounting
90 Description: Tests use count od shared pointer
91 Expected: counters should be equal for equal pointers
92 Count number should match expected
94 RUNNER_TEST(SharedPtr_RefCounting)
96 DPL::SharedPtr<char> ptr1(new char(7));
97 DPL::SharedPtr<char> ptr2;
101 RUNNER_ASSERT(ptr1 == ptr2);
102 RUNNER_ASSERT(ptr1.GetUseCount() == ptr2.GetUseCount());
103 RUNNER_ASSERT(ptr1.GetUseCount() == 2);
107 Name: SharedPtr_Operators
108 Description: Tests use of operator*
109 Expected: pointers should imitate primitive pointer bahaviour
111 RUNNER_TEST(SharedPtr_Operators)
113 DPL::SharedPtr<char> ptr(new char(7));
115 RUNNER_ASSERT(*ptr == *ptr.Get());