2 * Copyright (c) 2018 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 #include <tzplatform_config.h>
19 #include "libmm_jpeg_unittest.h"
20 #include "FileInterface.h"
21 #include "mm_util_jpeg.h"
23 #define DECODE_FILE_PATH tzplatform_mkpath(TZ_SYS_BIN, "libmm-jpeg-unittest.jpg")
24 #define ENCODE_FILE_PATH tzplatform_mkpath(TZ_USER_CONTENT, "libmm-jpeg-result.jpg")
26 using ::testing::InitGoogleTest;
27 using ::testing::Test;
28 using ::testing::TestCase;
30 class libmm_jpeg_Test : public ::testing::Test {
33 std::cout << "SetUp()" << std::endl;
37 std::cout << "TearDown()" << std::endl;
41 TEST(libmm_jpeg_Test, mm_util_decode_from_jpeg_file_p)
43 int ret = MM_UTIL_ERROR_NONE;
44 mm_image_info_s decode_image = {0, 0, MM_UTIL_COLOR_RGB24, NULL, 0, 0};
46 ret = mm_util_decode_from_jpeg_file(DECODE_FILE_PATH, MM_UTIL_COLOR_RGB24, MM_UTIL_JPEG_DECODE_DOWNSCALE_1_1, &decode_image);
47 EXPECT_EQ(ret, MM_UTIL_ERROR_NONE);
48 EXPECT_EQ(decode_image.width, 640);
49 EXPECT_EQ(decode_image.height, 480);
50 EXPECT_TRUE(decode_image.data != NULL);
52 if (decode_image.data != NULL)
53 free(decode_image.data);
56 TEST(libmm_jpeg_Test, mm_util_decode_from_jpeg_file_n)
58 int ret = MM_UTIL_ERROR_NONE;
59 mm_image_info_s decode_image = {0, 0, MM_UTIL_COLOR_RGB24, NULL, 0, 0};
61 ret = mm_util_decode_from_jpeg_file(NULL, MM_UTIL_COLOR_RGB24, MM_UTIL_JPEG_DECODE_DOWNSCALE_1_1, &decode_image);
62 EXPECT_EQ(ret, MM_UTIL_ERROR_INVALID_PARAMETER);
64 ret = mm_util_decode_from_jpeg_file(DECODE_FILE_PATH, MM_UTIL_COLOR_RGB24, MM_UTIL_JPEG_DECODE_DOWNSCALE_1_1, NULL);
65 EXPECT_EQ(ret, MM_UTIL_ERROR_INVALID_PARAMETER);
68 TEST(libmm_jpeg_Test, mm_util_decode_from_jpeg_memory_p)
70 int ret = MM_UTIL_ERROR_NONE;
72 mm_image_info_s decode_image = {0, 0, MM_UTIL_COLOR_RGB24, NULL, 0, 0};
74 FileInterface IFile = FileInterface(DECODE_FILE_PATH);
75 err = IFile.ReadData();
78 ret = mm_util_decode_from_jpeg_memory(IFile.readData, IFile.readDataSize, MM_UTIL_COLOR_RGB24, MM_UTIL_JPEG_DECODE_DOWNSCALE_1_1, &decode_image);
79 EXPECT_EQ(ret, MM_UTIL_ERROR_NONE);
80 EXPECT_EQ(decode_image.width, 640);
81 EXPECT_EQ(decode_image.height, 480);
82 EXPECT_TRUE(decode_image.data != NULL);
84 if (decode_image.data != NULL)
85 free(decode_image.data);
88 TEST(libmm_jpeg_Test, mm_util_decode_from_jpeg_memory_n)
90 int ret = MM_UTIL_ERROR_NONE;
92 mm_image_info_s decode_image = {0, 0, MM_UTIL_COLOR_RGB24, NULL, 0, 0};
94 FileInterface IFile = FileInterface(DECODE_FILE_PATH);
95 err = IFile.ReadData();
98 ret = mm_util_decode_from_jpeg_memory(NULL, IFile.readDataSize, MM_UTIL_COLOR_RGB24, MM_UTIL_JPEG_DECODE_DOWNSCALE_1_1, &decode_image);
99 EXPECT_EQ(ret, MM_UTIL_ERROR_INVALID_PARAMETER);
101 ret = mm_util_decode_from_jpeg_memory(IFile.readData, IFile.readDataSize, MM_UTIL_COLOR_RGB24, MM_UTIL_JPEG_DECODE_DOWNSCALE_1_1, NULL);
102 EXPECT_EQ(ret, MM_UTIL_ERROR_INVALID_PARAMETER);
105 TEST(libmm_jpeg_Test, mm_util_jpeg_encode_to_file_p)
107 int ret = MM_UTIL_ERROR_NONE;
108 mm_image_info_s decode_image = {0, 0, MM_UTIL_COLOR_RGB24, NULL, 0, 0};
110 ret = mm_util_decode_from_jpeg_file(DECODE_FILE_PATH, MM_UTIL_COLOR_RGB24, MM_UTIL_JPEG_DECODE_DOWNSCALE_1_1, &decode_image);
111 EXPECT_EQ(ret, MM_UTIL_ERROR_NONE);
112 EXPECT_TRUE(decode_image.data != NULL);
114 ret = mm_util_jpeg_encode_to_file(&decode_image, 100, ENCODE_FILE_PATH);
115 EXPECT_EQ(ret, MM_UTIL_ERROR_NONE);
117 if (decode_image.data != NULL)
118 free(decode_image.data);
121 TEST(libmm_jpeg_Test, mm_util_jpeg_encode_to_file_n)
123 int ret = MM_UTIL_ERROR_NONE;
124 mm_image_info_s decode_image = {0, 0, MM_UTIL_COLOR_RGB24, NULL, 0, 0};
126 ret = mm_util_jpeg_encode_to_file(NULL, 100, ENCODE_FILE_PATH);
127 EXPECT_EQ(ret, MM_UTIL_ERROR_INVALID_PARAMETER);
129 ret = mm_util_jpeg_encode_to_file(&decode_image, 0, ENCODE_FILE_PATH);
130 EXPECT_EQ(ret, MM_UTIL_ERROR_INVALID_PARAMETER);
132 ret = mm_util_jpeg_encode_to_file(&decode_image, 100, NULL);
133 EXPECT_EQ(ret, MM_UTIL_ERROR_INVALID_PARAMETER);
136 TEST(libmm_jpeg_Test, mm_util_jpeg_encode_to_memory_p)
138 int ret = MM_UTIL_ERROR_NONE;
139 mm_image_info_s decode_image = {0, 0, MM_UTIL_COLOR_RGB24, NULL, 0, 0};
143 ret = mm_util_decode_from_jpeg_file(DECODE_FILE_PATH, MM_UTIL_COLOR_RGB24, MM_UTIL_JPEG_DECODE_DOWNSCALE_1_1, &decode_image);
144 EXPECT_EQ(ret, MM_UTIL_ERROR_NONE);
145 EXPECT_TRUE(decode_image.data != NULL);
147 ret = mm_util_jpeg_encode_to_memory(&buffer, &size, (unsigned char*)decode_image.data, (unsigned int)decode_image.width, (unsigned int)decode_image.height, decode_image.color, 100);
148 EXPECT_EQ(ret, MM_UTIL_ERROR_NONE);
149 EXPECT_TRUE(buffer != NULL);
152 if (decode_image.data != NULL)
153 free(decode_image.data);
156 TEST(libmm_jpeg_Test, mm_util_jpeg_encode_to_memory_n)
158 int ret = MM_UTIL_ERROR_NONE;
159 mm_image_info_s decode_image = {0, 0, MM_UTIL_COLOR_RGB24, NULL, 0, 0};
161 unsigned int size = 0;
163 ret = mm_util_decode_from_jpeg_file(DECODE_FILE_PATH, MM_UTIL_COLOR_RGB24, MM_UTIL_JPEG_DECODE_DOWNSCALE_1_1, &decode_image);
164 EXPECT_EQ(ret, MM_UTIL_ERROR_NONE);
165 EXPECT_TRUE(decode_image.data != NULL);
167 ret = mm_util_jpeg_encode_to_memory(NULL, &size, (unsigned char*)decode_image.data, (unsigned int)decode_image.width, (unsigned int)decode_image.height, decode_image.color, 100);
168 EXPECT_EQ(ret, MM_UTIL_ERROR_INVALID_PARAMETER);
170 ret = mm_util_jpeg_encode_to_memory(&buffer, NULL, (unsigned char*)decode_image.data, (unsigned int)decode_image.width, (unsigned int)decode_image.height, decode_image.color, 100);
171 EXPECT_EQ(ret, MM_UTIL_ERROR_INVALID_PARAMETER);
173 ret = mm_util_jpeg_encode_to_memory(&buffer, &size, (unsigned char*)decode_image.data, (unsigned int)decode_image.width, (unsigned int)decode_image.height, decode_image.color, 0);
174 EXPECT_EQ(ret, MM_UTIL_ERROR_INVALID_PARAMETER);
176 if (decode_image.data != NULL)
177 free(decode_image.data);
180 TEST(libmm_jpeg_Test, mm_util_encode_to_jpeg_memory_p)
182 int ret = MM_UTIL_ERROR_NONE;
183 mm_image_info_s decode_image = {0, 0, MM_UTIL_COLOR_RGB24, NULL, 0, 0};
187 ret = mm_util_decode_from_jpeg_file(DECODE_FILE_PATH, MM_UTIL_COLOR_RGB24, MM_UTIL_JPEG_DECODE_DOWNSCALE_1_1, &decode_image);
188 EXPECT_EQ(ret, MM_UTIL_ERROR_NONE);
189 EXPECT_TRUE(decode_image.data != NULL);
191 ret = mm_util_encode_to_jpeg_memory(&decode_image, 100, &buffer, &size);
192 EXPECT_EQ(ret, MM_UTIL_ERROR_NONE);
193 EXPECT_TRUE(buffer != NULL);
196 if (decode_image.data != NULL)
197 free(decode_image.data);
203 TEST(libmm_jpeg_Test, mm_util_encode_to_jpeg_memory_n)
205 int ret = MM_UTIL_ERROR_NONE;
206 mm_image_info_s decode_image = {0, 0, MM_UTIL_COLOR_RGB24, NULL, 0, 0};
210 ret = mm_util_encode_to_jpeg_memory(NULL, 100, &buffer, &size);
211 EXPECT_EQ(ret, MM_UTIL_ERROR_INVALID_PARAMETER);
213 ret = mm_util_encode_to_jpeg_memory(&decode_image, 100, NULL, &size);
214 EXPECT_EQ(ret, MM_UTIL_ERROR_INVALID_PARAMETER);
216 ret = mm_util_encode_to_jpeg_memory(&decode_image, 100, &buffer, NULL);
217 EXPECT_EQ(ret, MM_UTIL_ERROR_INVALID_PARAMETER);
220 int main(int argc, char **argv)
222 InitGoogleTest(&argc, argv);
224 return RUN_ALL_TESTS();