Minor coverity issue fixes
[platform/core/uifw/dali-adaptor.git] / automated-tests / src / dali-adaptor / utc-Dali-EncodedImageBuffer.cpp
1 /*
2  * Copyright (c) 2022 Samsung Electronics Co., Ltd.
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  *
16  */
17
18 #include <dali-test-suite-utils.h>
19 #include <dali/dali.h>
20 #include <dali/public-api/adaptor-framework/encoded-image-buffer.h>
21 #include <stdlib.h>
22 #include <unistd.h>
23
24 using namespace Dali;
25
26 namespace
27 {
28 EncodedImageBuffer::RawBufferType tinybuffer()
29 {
30   EncodedImageBuffer::RawBufferType buffer;
31   buffer.PushBack(0x11);
32   buffer.PushBack(0x22);
33   buffer.PushBack(0x33);
34   return buffer;
35 }
36
37 } // anonymous namespace
38
39 void dali_encoded_image_buffer_startup(void)
40 {
41   test_return_value = TET_UNDEF;
42 }
43
44 void dali_encoded_image_buffer_cleanup(void)
45 {
46   test_return_value = TET_PASS;
47 }
48
49 int UtcDaliEncodedImageBufferNew(void)
50 {
51   // invoke default handle constructor
52   EncodedImageBuffer buffer;
53
54   DALI_TEST_CHECK(!buffer);
55
56   // initialise handle
57   buffer = EncodedImageBuffer::New(tinybuffer());
58
59   DALI_TEST_CHECK(buffer);
60   END_TEST;
61 }
62
63 int UtcDaliEncodedImageBufferCopyConstructor(void)
64 {
65   EncodedImageBuffer buffer = EncodedImageBuffer::New(tinybuffer());
66   EncodedImageBuffer bufferCopy(buffer);
67
68   DALI_TEST_EQUALS((bool)bufferCopy, true, TEST_LOCATION);
69   END_TEST;
70 }
71
72 int UtcDaliEncodedImageBufferAssignmentOperator(void)
73 {
74   EncodedImageBuffer buffer = EncodedImageBuffer::New(tinybuffer());
75
76   EncodedImageBuffer buffer2;
77   DALI_TEST_EQUALS((bool)buffer2, false, TEST_LOCATION);
78
79   buffer2 = buffer;
80   DALI_TEST_EQUALS((bool)buffer2, true, TEST_LOCATION);
81
82   END_TEST;
83 }
84
85 int UtcDaliEncodedImageBufferMoveConstructor(void)
86 {
87   EncodedImageBuffer buffer      = EncodedImageBuffer::New(tinybuffer());
88   EncodedImageBuffer bufferMoved = std::move(buffer);
89
90   DALI_TEST_EQUALS((bool)buffer, false, TEST_LOCATION);
91   DALI_TEST_EQUALS((bool)bufferMoved, true, TEST_LOCATION);
92   END_TEST;
93 }
94
95 int UtcDaliEncodedImageBufferMoveAssignmentOperator(void)
96 {
97   EncodedImageBuffer buffer = EncodedImageBuffer::New(tinybuffer());
98
99   EncodedImageBuffer buffer2;
100   DALI_TEST_EQUALS((bool)buffer, true, TEST_LOCATION);
101   DALI_TEST_EQUALS((bool)buffer2, false, TEST_LOCATION);
102
103   buffer2 = std::move(buffer);
104   DALI_TEST_EQUALS((bool)buffer, false, TEST_LOCATION);
105   DALI_TEST_EQUALS((bool)buffer2, true, TEST_LOCATION);
106
107   END_TEST;
108 }
109
110 int UtcDaliEncodedImageBufferGetRawBuffer(void)
111 {
112   EncodedImageBuffer::RawBufferType originBuffer = tinybuffer();
113
114   EncodedImageBuffer buffer = EncodedImageBuffer::New(originBuffer);
115
116   EncodedImageBuffer::RawBufferType getBuffer = buffer.GetRawBuffer();
117
118   // compare value between originBuffer and getBuffer
119   DALI_TEST_EQUALS(originBuffer.Count(), getBuffer.Count(), TEST_LOCATION);
120
121   EncodedImageBuffer::RawBufferType::Iterator iter = originBuffer.Begin();
122   EncodedImageBuffer::RawBufferType::Iterator jter = getBuffer.Begin();
123   for(; iter != originBuffer.End(); ++iter, ++jter)
124   {
125     DALI_TEST_EQUALS(*iter, *jter, TEST_LOCATION);
126   }
127
128   END_TEST;
129 }
130
131 int UtcDaliEncodedImageBufferGetHash(void)
132 {
133   EncodedImageBuffer buffer1 = EncodedImageBuffer::New(tinybuffer());
134   EncodedImageBuffer buffer2 = EncodedImageBuffer::New(tinybuffer());
135   EncodedImageBuffer buffer3 = EncodedImageBuffer::New(EncodedImageBuffer::RawBufferType()); //< EmptyBuffer
136
137   tet_infoline("Test different encoded buffer with same data has same hash value.");
138   DALI_TEST_CHECK(buffer1 != buffer2);
139   DALI_TEST_CHECK(buffer1.GetHash() == buffer2.GetHash());
140
141   tet_infoline("Test hash with empty buffer.");
142   DALI_TEST_CHECK(buffer1.GetHash() != buffer3.GetHash());
143   DALI_TEST_CHECK(buffer2.GetHash() != buffer3.GetHash());
144
145   END_TEST;
146 }