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