1 /*
2 * Copyright (c) 2021 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 <gmock/gmock.h>
17 #include <gtest/gtest.h>
18 #include "audio_internal.h"
19
20 using namespace std;
21 using namespace testing::ext;
22 namespace {
23 class AudioManagerTest : public testing::Test {
24 public:
25 static void SetUpTestCase();
26 static void TearDownTestCase();
27 };
28
SetUpTestCase()29 void AudioManagerTest::SetUpTestCase()
30 {
31 }
32
TearDownTestCase()33 void AudioManagerTest::TearDownTestCase()
34 {
35 }
36
37 HWTEST_F(AudioManagerTest, AudioManagerGetAllAdaptersWhenManagerIsNull, TestSize.Level1)
38 {
39 struct AudioManager *managerFuncs = GetAudioManagerFuncs();
40 int32_t size = 0;
41 struct AudioManager *manager = nullptr;
42 struct AudioAdapterDescriptor *descs;
43 int32_t ret = managerFuncs->GetAllAdapters(manager, &descs, &size);
44 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, ret);
45 }
46
47 HWTEST_F(AudioManagerTest, AudioManagerGetAllAdaptersWhenDescsIsNull, TestSize.Level1)
48 {
49 struct AudioManager *managerFuncs = GetAudioManagerFuncs();
50 int32_t size = 0;
51 int32_t ret = managerFuncs->GetAllAdapters(managerFuncs, nullptr, &size);
52 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, ret);
53 }
54
55 HWTEST_F(AudioManagerTest, AudioManagerGetAllAdaptersWhenSizeIsNull, TestSize.Level1)
56 {
57 struct AudioManager *managerFuncs = GetAudioManagerFuncs();
58 int32_t *size = nullptr;
59 struct AudioAdapterDescriptor *descs;
60 int32_t ret = managerFuncs->GetAllAdapters(managerFuncs, &descs, size);
61 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, ret);
62 }
63
64 HWTEST_F(AudioManagerTest, AudioManagerGetAllAdaptersWhenParamIsValid, TestSize.Level1)
65 {
66 struct AudioManager *managerFuncs = GetAudioManagerFuncs();
67 int32_t size = 0;
68 struct AudioAdapterDescriptor *descs;
69 int32_t ret = managerFuncs->GetAllAdapters(managerFuncs, &descs, &size);
70 EXPECT_EQ(HDF_SUCCESS, ret);
71 }
72
73 HWTEST_F(AudioManagerTest, AudioManagerLoadAdapterWhenManagerIsNull, TestSize.Level1)
74 {
75 struct AudioManager *managerFuncs = GetAudioManagerFuncs();
76 struct AudioManager *manager = nullptr;
77 const struct AudioAdapterDescriptor *desc = new AudioAdapterDescriptor;
78 struct AudioAdapter *adapter;
79 int32_t ret = managerFuncs->LoadAdapter(manager, desc, &adapter);
80 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, ret);
81 delete(desc);
82 desc = nullptr;
83 }
84
85 HWTEST_F(AudioManagerTest, AudioManagerLoadAdapterWhenDescIsNull, TestSize.Level1)
86 {
87 struct AudioManager *managerFuncs = GetAudioManagerFuncs();
88 const struct AudioAdapterDescriptor *desc = nullptr;
89 struct AudioAdapter *adapter;
90 int32_t ret = managerFuncs->LoadAdapter(managerFuncs, desc, &adapter);
91 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, ret);
92 }
93
94 HWTEST_F(AudioManagerTest, AudioManagerLoadAdapterWhenAdapterNameIsNull, TestSize.Level1)
95 {
96 struct AudioManager *managerFuncs = GetAudioManagerFuncs();
97 struct AudioAdapterDescriptor descTemp;
98 descTemp.adapterName = nullptr;
99 const struct AudioAdapterDescriptor *desc = &descTemp;
100 struct AudioAdapter *adapter;
101 int32_t ret = managerFuncs->LoadAdapter(managerFuncs, desc, &adapter);
102 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, ret);
103 }
104
105 HWTEST_F(AudioManagerTest, AudioManagerLoadAdapterWhenAdapterIsNull, TestSize.Level1)
106 {
107 struct AudioManager *managerFuncs = GetAudioManagerFuncs();
108 const struct AudioAdapterDescriptor *desc = new AudioAdapterDescriptor;
109 int32_t ret = managerFuncs->LoadAdapter(managerFuncs, desc, nullptr);
110 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, ret);
111 delete(desc);
112 desc = nullptr;
113 }
114
115 HWTEST_F(AudioManagerTest, AudioManagerLoadAdapterWhenDescIsError, TestSize.Level1)
116 {
117 int32_t ret;
118 struct AudioManager *managerFuncs = GetAudioManagerFuncs();
119 ASSERT_NE(managerFuncs, nullptr);
120 int32_t size = 0;
121 struct AudioAdapterDescriptor *descs;
122 ret = managerFuncs->GetAllAdapters(managerFuncs, &descs, &size);
123 ASSERT_EQ(HDF_SUCCESS, ret);
124 struct AudioAdapterDescriptor *desc = new AudioAdapterDescriptor;
125 struct AudioPort ports;
126 desc->adapterName = " ";
127 desc->ports = &ports;
128 desc->portNum = 1;
129 struct AudioAdapter *adapter;
130 ret = managerFuncs->LoadAdapter(managerFuncs, desc, &adapter);
131 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_OBJECT, ret);
132 managerFuncs->UnloadAdapter(managerFuncs, adapter);
133 adapter = nullptr;
134 delete desc;
135 desc = nullptr;
136 }
137
138 HWTEST_F(AudioManagerTest, AudioManagerLoadAdapterWhenAdapterNameIsError, TestSize.Level1)
139 {
140 int32_t ret;
141 struct AudioManager *managerFuncs = GetAudioManagerFuncs();
142 ASSERT_NE(managerFuncs, nullptr);
143 int32_t size = 0;
144 struct AudioAdapterDescriptor *descs;
145 ret = managerFuncs->GetAllAdapters(managerFuncs, &descs, &size);
146 ASSERT_EQ(HDF_SUCCESS, ret);
147
148 struct AudioAdapterDescriptor *desc = &descs[0];
149 desc->adapterName = "abc";
150 static struct AudioAdapter *adapter;
151 ret = managerFuncs->LoadAdapter(managerFuncs, desc, &adapter);
152 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, ret);
153 managerFuncs->UnloadAdapter(managerFuncs, adapter);
154 adapter = nullptr;
155 }
156
157 HWTEST_F(AudioManagerTest, AudioManagerLoadAdapterWhenParamIsValid, TestSize.Level1)
158 {
159 int32_t ret;
160 struct AudioManager *managerFuncs = GetAudioManagerFuncs();
161 ASSERT_NE(managerFuncs, nullptr);
162 int32_t size = 0;
163 struct AudioAdapterDescriptor *descs;
164 ret = managerFuncs->GetAllAdapters(managerFuncs, &descs, &size);
165 ASSERT_EQ(HDF_SUCCESS, ret);
166
167 struct AudioAdapterDescriptor *desc = &descs[0];
168 static struct AudioAdapter *adapter;
169 ret = managerFuncs->LoadAdapter(managerFuncs, desc, &adapter);
170 EXPECT_EQ(HDF_SUCCESS, ret);
171 managerFuncs->UnloadAdapter(managerFuncs, adapter);
172 adapter = nullptr;
173 }
174 }
175