• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023-2025 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include <gtest/gtest.h>
17 #include "audio_speed.h"
18 #include "audio_errors.h"
19 
20 using namespace testing::ext;
21 using namespace std;
22 namespace OHOS {
23 namespace AudioStandard {
24 
25 class AudioSpeedUnitTest : public testing::Test {
26 public:
27     static void SetUpTestCase(void);
28     static void TearDownTestCase(void);
29     void SetUp();
30     void TearDown();
31 };
32 
SetUpTestCase(void)33 void AudioSpeedUnitTest::SetUpTestCase(void)
34 {
35     // input testsuit setup step,setup invoked before all testcases
36 }
37 
TearDownTestCase(void)38 void AudioSpeedUnitTest::TearDownTestCase(void)
39 {
40     // input testsuit teardown step,teardown invoked after all testcases
41 }
42 
SetUp(void)43 void AudioSpeedUnitTest::SetUp(void)
44 {
45     // input testcase setup step,setup invoked before each testcases
46 }
47 
TearDown(void)48 void AudioSpeedUnitTest::TearDown(void)
49 {
50     // input testcase teardown step,teardown invoked after each testcases
51 }
52 
53 /**
54 * @tc.name  : Test AudioSpeed API
55 * @tc.type  : FUNC
56 * @tc.number: AudioSpeedUnitTest_001
57 * @tc.desc  : Test LoadChangeSpeedFunc.
58 */
59 HWTEST(AudioSpeedUnitTest, AudioSpeedUnitTest_001, TestSize.Level1)
60 {
61     size_t rate = 0;
62     size_t format = SAMPLE_S24LE;
63     size_t channels = 1;
64     auto audioSpeed = std::make_shared<AudioSpeed>(rate, format, channels);
65     auto result = audioSpeed->LoadChangeSpeedFunc();
66     EXPECT_EQ(result, SUCCESS);
67 }
68 
69 /**
70 * @tc.name  : Test AudioSpeed API
71 * @tc.type  : FUNC
72 * @tc.number: AudioSpeedUnitTest_002.
73 * @tc.desc  : Test LoadChangeSpeedFunc.
74 */
75 HWTEST(AudioSpeedUnitTest, AudioSpeedUnitTest_002, TestSize.Level1)
76 {
77     size_t rate = 0;
78     size_t format = SAMPLE_S32LE;
79     size_t channels = 1;
80     auto audioSpeed = std::make_shared<AudioSpeed>(rate, format, channels);
81     auto result = audioSpeed->LoadChangeSpeedFunc();
82     EXPECT_EQ(result, SUCCESS);
83 }
84 
85 /**
86 * @tc.name  : Test AudioSpeed API
87 * @tc.type  : FUNC
88 * @tc.number: AudioSpeedUnitTest_003.
89 * @tc.desc  : Test ChangeSpeedFor24Bit.
90 */
91 HWTEST(AudioSpeedUnitTest, AudioSpeedUnitTest_003, TestSize.Level1)
92 {
93     size_t rate = 0;
94     size_t format = SAMPLE_S32LE;
95     size_t channels = 1;
96 
97     uint8_t *buffer = nullptr;
98     int32_t bufferSize = 0;
99     std::unique_ptr<uint8_t []> outBuffer = nullptr;
100     int32_t outBufferSize;
101 
102     auto audioSpeed = std::make_shared<AudioSpeed>(rate, format, channels);
103     auto result = audioSpeed->ChangeSpeedFor24Bit(buffer, bufferSize, outBuffer, outBufferSize);
104     EXPECT_EQ(result, ERR_MEMORY_ALLOC_FAILED);
105 }
106 
107 /**
108 * @tc.name  : Test AudioSpeed API
109 * @tc.type  : FUNC
110 * @tc.number: AudioSpeedUnitTest_004.
111 * @tc.desc  : Test ChangeSpeedFor24Bit.
112 */
113 HWTEST(AudioSpeedUnitTest, AudioSpeedUnitTest_004, TestSize.Level1)
114 {
115     size_t rate = 0;
116     size_t format = SAMPLE_S32LE;
117     size_t channels = 1;
118 
119     uint8_t *buffer = nullptr;
120     int32_t bufferSize = MAX_SPEED_BUFFER_SIZE + 1;
121     std::unique_ptr<uint8_t []> outBuffer = nullptr;
122     int32_t outBufferSize;
123 
124     auto audioSpeed = std::make_shared<AudioSpeed>(rate, format, channels);
125     auto result = audioSpeed->ChangeSpeedFor24Bit(buffer, bufferSize, outBuffer, outBufferSize);
126     EXPECT_EQ(result, ERR_MEMORY_ALLOC_FAILED);
127 }
128 
129 /**
130 * @tc.name  : Test AudioSpeed API
131 * @tc.type  : FUNC
132 * @tc.number: AudioSpeedUnitTest_004.
133 * @tc.desc  : Test ChangeSpeedFor24Bit.
134 */
135 HWTEST(AudioSpeedUnitTest, AudioSpeedUnitTest_005, TestSize.Level1)
136 {
137     size_t rate = 0;
138     size_t format = SAMPLE_S32LE;
139     size_t channels = 1;
140 
141     uint8_t *buffer = nullptr;
142     int32_t bufferSize = 1;
143     std::unique_ptr<uint8_t []> outBuffer = nullptr;
144     int32_t outBufferSize = 0;
145 
146     auto audioSpeed = std::make_shared<AudioSpeed>(rate, format, channels);
147     auto result = audioSpeed->ChangeSpeedFor24Bit(buffer, bufferSize, outBuffer, outBufferSize);
148     EXPECT_EQ(result, bufferSize);
149 }
150 
151 /**
152 * @tc.name  : Test AudioSpeed API
153 * @tc.type  : FUNC
154 * @tc.number: AudioSpeedUnitTest_006.
155 * @tc.desc  : Test ChangeSpeedFor32Bit.
156 */
157 HWTEST(AudioSpeedUnitTest, AudioSpeedUnitTest_006, TestSize.Level1)
158 {
159     size_t rate = 0;
160     size_t format = SAMPLE_S32LE;
161     size_t channels = 1;
162 
163     uint8_t *buffer = nullptr;
164     int32_t bufferSize = 0;
165     std::unique_ptr<uint8_t []> outBuffer = nullptr;
166     int32_t outBufferSize;
167 
168     auto audioSpeed = std::make_shared<AudioSpeed>(rate, format, channels);
169     auto result = audioSpeed->ChangeSpeedFor32Bit(buffer, bufferSize, outBuffer, outBufferSize);
170     EXPECT_EQ(result, ERR_MEMORY_ALLOC_FAILED);
171 }
172 
173 /**
174 * @tc.name  : Test AudioSpeed API
175 * @tc.type  : FUNC
176 * @tc.number: AudioSpeedUnitTest_007.
177 * @tc.desc  : Test ChangeSpeedFor32Bit.
178 */
179 HWTEST(AudioSpeedUnitTest, AudioSpeedUnitTest_007, TestSize.Level1)
180 {
181     size_t rate = 0;
182     size_t format = SAMPLE_S32LE;
183     size_t channels = 1;
184 
185     uint8_t *buffer = nullptr;
186     int32_t bufferSize = MAX_SPEED_BUFFER_SIZE + 1;
187     std::unique_ptr<uint8_t []> outBuffer = nullptr;
188     int32_t outBufferSize;
189 
190     auto audioSpeed = std::make_shared<AudioSpeed>(rate, format, channels);
191     auto result = audioSpeed->ChangeSpeedFor32Bit(buffer, bufferSize, outBuffer, outBufferSize);
192     EXPECT_EQ(result, ERR_MEMORY_ALLOC_FAILED);
193 }
194 
195 /**
196 * @tc.name  : Test AudioSpeed API
197 * @tc.type  : FUNC
198 * @tc.number: AudioSpeedUnitTest_008.
199 * @tc.desc  : Test ChangeSpeedFor32Bit.
200 */
201 HWTEST(AudioSpeedUnitTest, AudioSpeedUnitTest_008, TestSize.Level1)
202 {
203     size_t rate = 0;
204     size_t format = SAMPLE_S32LE;
205     size_t channels = 1;
206 
207     uint8_t *buffer = nullptr;
208     int32_t bufferSize = 1;
209     std::unique_ptr<uint8_t []> outBuffer = nullptr;
210     int32_t outBufferSize = 0;
211 
212     auto audioSpeed = std::make_shared<AudioSpeed>(rate, format, channels);
213     auto result = audioSpeed->ChangeSpeedFor32Bit(buffer, bufferSize, outBuffer, outBufferSize);
214     EXPECT_EQ(result, bufferSize);
215 }
216 
217 /**
218 * @tc.name  : Test AudioSpeed API
219 * @tc.type  : FUNC
220 * @tc.number: AudioSpeedUnitTest_009.
221 * @tc.desc  : Test ChangeSpeedFor32Bit.
222 */
223 HWTEST(AudioSpeedUnitTest, AudioSpeedUnitTest_009, TestSize.Level1)
224 {
225     size_t rate = 0;
226     size_t format = SAMPLE_F32LE;
227     size_t channels = 1;
228     auto audioSpeed = std::make_shared<AudioSpeed>(rate, format, channels);
229     auto result = audioSpeed->LoadChangeSpeedFunc();
230     EXPECT_EQ(result, SUCCESS);
231 }
232 
233 /**
234 * @tc.name  : Test AudioSpeed API
235 * @tc.type  : FUNC
236 * @tc.number: AudioSpeedUnitTest_010.
237 * @tc.desc  : Test Flush.
238 */
239 HWTEST(AudioSpeedUnitTest, AudioSpeedUnitTest_010, TestSize.Level1)
240 {
241     size_t rate = 0;
242     size_t format = SAMPLE_U8;
243     size_t channels = 1;
244     auto audioSpeed = std::make_shared<AudioSpeed>(rate, format, channels);
245     auto result = audioSpeed->Flush();
246     EXPECT_EQ(result, SUCCESS);
247 }
248 
249 /**
250 * @tc.name  : Test AudioSpeed API
251 * @tc.type  : FUNC
252 * @tc.number: AudioSpeedUnitTest_011.
253 * @tc.desc  : Test Flush.
254 */
255 HWTEST(AudioSpeedUnitTest, AudioSpeedUnitTest_011, TestSize.Level1)
256 {
257     size_t rate = 0;
258     size_t format = SAMPLE_S24LE;
259     size_t channels = 1;
260     auto audioSpeed = std::make_shared<AudioSpeed>(rate, format, channels);
261     auto result = audioSpeed->Flush();
262     EXPECT_EQ(result, SUCCESS);
263 }
264 
265 /**
266 * @tc.name  : Test AudioSpeed API
267 * @tc.type  : FUNC
268 * @tc.number: AudioSpeedUnitTest_012.
269 * @tc.desc  : Test Flush.
270 */
271 HWTEST(AudioSpeedUnitTest, AudioSpeedUnitTest_012, TestSize.Level1)
272 {
273     size_t rate = 0;
274     size_t format = SAMPLE_S32LE;
275     size_t channels = 1;
276     auto audioSpeed = std::make_shared<AudioSpeed>(rate, format, channels);
277     auto result = audioSpeed->Flush();
278     EXPECT_EQ(result, SUCCESS);
279 }
280 
281 /**
282 * @tc.name  : Test AudioSpeed API
283 * @tc.type  : FUNC
284 * @tc.number: AudioSpeedUnitTest_013.
285 * @tc.desc  : Test Flush.
286 */
287 HWTEST(AudioSpeedUnitTest, AudioSpeedUnitTest_013, TestSize.Level1)
288 {
289     size_t rate = 0;
290     size_t format = SAMPLE_F32LE;
291     size_t channels = 1;
292     auto audioSpeed = std::make_shared<AudioSpeed>(rate, format, channels);
293     auto result = audioSpeed->Flush();
294     EXPECT_EQ(result, SUCCESS);
295 }
296 
297 /**
298 * @tc.name  : Test AudioSpeed API
299 * @tc.type  : FUNC
300 * @tc.number: AudioSpeedUnitTest_014.
301 * @tc.desc  : Test Flush.
302 */
303 HWTEST(AudioSpeedUnitTest, AudioSpeedUnitTest_014, TestSize.Level1)
304 {
305     size_t rate = 0;
306     size_t format = SAMPLE_S16LE;
307     size_t channels = 1;
308     auto audioSpeed = std::make_shared<AudioSpeed>(rate, format, channels);
309     auto result = audioSpeed->Flush();
310     EXPECT_EQ(result, SUCCESS);
311 }
312 
313 /**
314 * @tc.name  : Test AudioSpeed API
315 * @tc.type  : FUNC
316 * @tc.number: AudioSpeedUnitTest_015.
317 * @tc.desc  : Test Flush.
318 */
319 HWTEST(AudioSpeedUnitTest, AudioSpeedUnitTest_015, TestSize.Level1)
320 {
321     size_t rate = 0;
322     size_t format = INVALID_WIDTH;
323     size_t channels = 1;
324     auto audioSpeed = std::make_shared<AudioSpeed>(rate, format, channels);
325     auto result = audioSpeed->Flush();
326     EXPECT_EQ(result, SUCCESS);
327 }
328 } // namespace AudioStandard
329 } // namespace OHOS