1 /*
2 * Copyright (c) 2021-2022 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 "stability_test.h"
17
18 #include <sys/time.h>
19
20 #include "test_common.h"
21
22 namespace Contacts {
23 namespace Test {
StabilityTest()24 StabilityTest::StabilityTest()
25 {
26 }
27
~StabilityTest()28 StabilityTest::~StabilityTest()
29 {
30 }
31
DeleteContact()32 void StabilityTest::DeleteContact()
33 {
34 OHOS::DataShare::DataSharePredicates predicates;
35 OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT);
36 predicates.NotEqualTo("id", "0");
37 predicates.And();
38 predicates.EqualTo("is_deleted", "0");
39 contactsDataAbility.Delete(uriRawContact, predicates);
40 int count = 0;
41 int deleteCount = 9999;
42 std::vector<std::string> columns;
43 OHOS::Uri uriRawContactComplete(ContactsUri::DELETED_RAW_CONTACT);
44 while (count < deleteCount) {
45 int time = Time::SLEEP_TIME_MERGE_DELETE;
46 std::chrono::milliseconds dura(time);
47 std::this_thread::sleep_for(dura);
48 OHOS::DataShare::DataSharePredicates predicates2;
49 std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
50 contactsDataAbility.Query(uriRawContactComplete, predicates2, columns);
51 resultSet->GetRowCount(count);
52 resultSet->Close();
53 }
54 int time = Time::SLEEP_TIME_MERGE_DELETE;
55 std::chrono::milliseconds dura(time);
56 std::this_thread::sleep_for(dura);
57 OHOS::DataShare::DataSharePredicates predicates3;
58 predicates3.NotEqualTo("id", "0");
59 contactsDataAbility.Delete(uriRawContactComplete, predicates3);
60 }
61
62 /*
63 * @tc.number raw_contact_insert_performance_test_900
64 * @tc.name raw_contact stability testing add 10000
65 * @tc.desc add 10000
66 * @tc.level Level1
67 * @tc.size MediumTest
68 * @tc.type Function
69 */
HWTEST_F(StabilityTest, raw_contact_insert_performance_test_900, testing::ext::TestSize.Level1)70 HWTEST_F(StabilityTest, raw_contact_insert_performance_test_900, testing::ext::TestSize.Level1)
71 {
72 HILOG_INFO("--- raw_contact_insert_performance_test_900 is starting! ---");
73 OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT);
74 std::vector<OHOS::DataShare::DataShareValuesBucket> values;
75 for (int i = 0; i < 10000; i++) {
76 OHOS::DataShare::DataShareValuesBucket rawContactValues;
77 std::string name("小严");
78 name.append(std::to_string(i + 1));
79 rawContactValues.Put("display_name", name);
80 rawContactValues.Put("company", "company");
81 rawContactValues.Put("position", "position");
82 values.push_back(rawContactValues);
83 }
84 int batchInsertCode = contactsDataAbility.BatchInsert(uriRawContact, values);
85 EXPECT_EQ(batchInsertCode, 0);
86 }
87
88 /*
89 * @tc.number raw_contact_update_performance_test_1000
90 * @tc.name raw_contact stability testing update 10000
91 * @tc.desc update 10000
92 * @tc.level Level1
93 * @tc.size MediumTest
94 * @tc.type Function
95 */
HWTEST_F(StabilityTest, raw_contact_update_performance_test_1000, testing::ext::TestSize.Level1)96 HWTEST_F(StabilityTest, raw_contact_update_performance_test_1000, testing::ext::TestSize.Level1)
97 {
98 HILOG_INFO("--- raw_contact_update_performance_test_1000 is starting! ---");
99 OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT);
100 OHOS::DataShare::DataShareValuesBucket updateValues;
101 updateValues.Put("favorite", 1);
102 OHOS::DataShare::DataSharePredicates predicates;
103 predicates.GreaterThan("id", "0");
104 predicates.And();
105 predicates.EqualTo("is_deleted", "0");
106 int updateCode = contactsDataAbility.Update(uriRawContact, predicates, updateValues);
107 EXPECT_EQ(updateCode, 0);
108 }
109
110 /*
111 * @tc.number raw_contact_query_performance_test_1100
112 * @tc.name raw_contact stability testing query 10000
113 * @tc.desc query 10000
114 * @tc.level Level1
115 * @tc.size MediumTest
116 * @tc.type Function
117 */
HWTEST_F(StabilityTest, raw_contact_query_performance_test_1100, testing::ext::TestSize.Level1)118 HWTEST_F(StabilityTest, raw_contact_query_performance_test_1100, testing::ext::TestSize.Level1)
119 {
120 HILOG_INFO("--- raw_contact_query_performance_test_1100 is starting! ---");
121 OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT);
122 std::vector<std::string> columns;
123 columns.push_back("id");
124 columns.push_back("display_name");
125 columns.push_back("company");
126 columns.push_back("position");
127 OHOS::DataShare::DataSharePredicates predicates;
128 predicates.GreaterThan("id", "0");
129 predicates.And();
130 predicates.EqualTo("is_deleted", "0");
131 std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
132 contactsDataAbility.Query(uriRawContact, predicates, columns);
133 int rowCount = 0;
134 resultSet->GetRowCount(rowCount);
135 EXPECT_GT(rowCount, 9999);
136 resultSet->Close();
137 }
138
139 /*
140 * @tc.number raw_contact_delete_performance_test_1200
141 * @tc.name raw_contact stability testing delete 10000
142 * @tc.desc delete 10000
143 * @tc.level Level1
144 * @tc.size MediumTest
145 * @tc.type Function
146 */
HWTEST_F(StabilityTest, raw_contact_delete_performance_test_1200, testing::ext::TestSize.Level1)147 HWTEST_F(StabilityTest, raw_contact_delete_performance_test_1200, testing::ext::TestSize.Level1)
148 {
149 HILOG_INFO("--- raw_contact_delete_performance_test_1200 is starting! ---");
150 OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT);
151 OHOS::DataShare::DataSharePredicates predicates;
152 predicates.GreaterThan("id", "0");
153 predicates.And();
154 predicates.EqualTo("is_deleted", "0");
155 int deleteCode = contactsDataAbility.Delete(uriRawContact, predicates);
156 HILOG_INFO("raw_contact_delete_performance_test_1200 : deleteCode = %{public}d", deleteCode);
157 EXPECT_EQ(deleteCode, 0);
158 }
159
160 /*
161 * @tc.number contact_data_insert_performance_test_1300
162 * @tc.name contact_data stability testing add 10000
163 * @tc.desc add 10000
164 * @tc.level Level1
165 * @tc.size MediumTest
166 * @tc.type Function
167 */
HWTEST_F(StabilityTest, contact_data_insert_performance_test_1300, testing::ext::TestSize.Level1)168 HWTEST_F(StabilityTest, contact_data_insert_performance_test_1300, testing::ext::TestSize.Level1)
169 {
170 OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT);
171 OHOS::DataShare::DataShareValuesBucket rawContactValues;
172 std::string rawName("xiaoyan");
173 rawContactValues.Put("display_name", rawName);
174 rawContactValues.Put("company", "company");
175 rawContactValues.Put("position", "position");
176 int rawContactId = contactsDataAbility.Insert(uriRawContact, rawContactValues);
177 OHOS::DataShare::DataSharePredicates predicates;
178 predicates.NotEqualTo("id", "0");
179 predicates.And();
180 predicates.EqualTo("is_deleted", "0");
181 contactsDataAbility.Delete(uriRawContact, predicates);
182 OHOS::Uri uriContactData(ContactsUri::CONTACT_DATA);
183 std::vector<OHOS::DataShare::DataShareValuesBucket> values;
184 for (int i = 0; i < 10000; i++) {
185 OHOS::DataShare::DataShareValuesBucket contactDataValues;
186 std::string name("xiaoyan");
187 name.append(std::to_string(i + 1));
188 contactDataValues.Put("raw_contact_id", rawContactId);
189 contactDataValues.Put("content_type", "name");
190 contactDataValues.Put("detail_info", name);
191 values.push_back(contactDataValues);
192 }
193 int batchInsertCode = contactsDataAbility.BatchInsert(uriContactData, values);
194 EXPECT_EQ(batchInsertCode, 0);
195 }
196
197 /*
198 * @tc.number contact_data_update_performance_test_1400
199 * @tc.name contact_data stability testing update 10000
200 * @tc.desc update 10000
201 * @tc.level Level1
202 * @tc.size MediumTest
203 * @tc.type Function
204 */
HWTEST_F(StabilityTest, contact_data_update_performance_test_1400, testing::ext::TestSize.Level1)205 HWTEST_F(StabilityTest, contact_data_update_performance_test_1400, testing::ext::TestSize.Level1)
206 {
207 HILOG_INFO("--- contact_data_update_performance_test_1400 is starting! ---");
208 OHOS::Uri uriContactData(ContactsUri::CONTACT_DATA);
209 OHOS::DataShare::DataShareValuesBucket updateValues;
210 updateValues.Put("syn_1", "test");
211 OHOS::DataShare::DataSharePredicates predicates;
212 predicates.GreaterThan("id", "0");
213 int updateCode = contactsDataAbility.Update(uriContactData, predicates, updateValues);
214 EXPECT_EQ(updateCode, 0);
215 }
216
217 /*
218 * @tc.number contact_data_query_performance_test_1500
219 * @tc.name contact_data stability testing query 10000
220 * @tc.desc query 10000
221 * @tc.level Level1
222 * @tc.size MediumTest
223 * @tc.type Function
224 */
HWTEST_F(StabilityTest, contact_data_query_performance_test_1500, testing::ext::TestSize.Level1)225 HWTEST_F(StabilityTest, contact_data_query_performance_test_1500, testing::ext::TestSize.Level1)
226 {
227 HILOG_INFO("--- contact_data_query_performance_test_1500 is starting! ---");
228 OHOS::Uri uriContactData(ContactsUri::CONTACT_DATA);
229 std::vector<std::string> columns;
230 columns.push_back("raw_contact_id");
231 columns.push_back("detail_info");
232 OHOS::DataShare::DataSharePredicates predicates;
233 predicates.GreaterThan("id", "0");
234 std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
235 contactsDataAbility.Query(uriContactData, predicates, columns);
236 int rowCount = 0;
237 resultSet->GetRowCount(rowCount);
238 EXPECT_GT(rowCount, 9999);
239 resultSet->Close();
240 }
241
242 /*
243 * @tc.number contact_data_delete_performance_test_1600
244 * @tc.name contact_data stability testing delete 10000
245 * @tc.desc delete 10000
246 * @tc.level Level1
247 * @tc.size MediumTest
248 * @tc.type Function
249 */
HWTEST_F(StabilityTest, contact_data_delete_performance_test_1600, testing::ext::TestSize.Level1)250 HWTEST_F(StabilityTest, contact_data_delete_performance_test_1600, testing::ext::TestSize.Level1)
251 {
252 HILOG_INFO("--- contact_data_delete_performance_test_1600 is starting! ---");
253 OHOS::Uri uriContactData(ContactsUri::CONTACT_DATA);
254 OHOS::DataShare::DataSharePredicates predicates;
255 predicates.GreaterThan("id", "0");
256 int deleteCode = contactsDataAbility.Delete(uriContactData, predicates);
257 EXPECT_EQ(deleteCode, 0);
258 }
259
260 /*
261 * @tc.number calllog_insert_performance_test_100
262 * @tc.name calllog calllog stability testing add 10000
263 * @tc.desc add 10000
264 * @tc.level Level1
265 * @tc.size MediumTest
266 * @tc.type Function
267 */
HWTEST_F(StabilityTest, calllog_insert_performance_test_100, testing::ext::TestSize.Level1)268 HWTEST_F(StabilityTest, calllog_insert_performance_test_100, testing::ext::TestSize.Level1)
269 {
270 OHOS::Uri uriCalllog(CallLogUri::CALL_LOG);
271 OHOS::DataShare::DataSharePredicates predicatesOne;
272 predicatesOne.GreaterThan("id", "0");
273 HILOG_INFO("calllog_insert_performance_test_100 deleted start! ");
274 calllogAbility.Delete(uriCalllog, predicatesOne);
275 HILOG_INFO("--- calllog_insert_performance_test_100 is starting! ---");
276 std::vector<OHOS::DataShare::DataShareValuesBucket> values;
277 for (int i = 0; i < 10000; i++) {
278 OHOS::DataShare::DataShareValuesBucket calllogValues;
279 calllogValues.Put("phone_number", std::to_string(i + 1));
280 values.push_back(calllogValues);
281 }
282 int batchInsertCode = calllogAbility.BatchInsert(uriCalllog, values);
283 EXPECT_EQ(batchInsertCode, 0);
284 }
285
286 /*
287 * @tc.number calllog_update_performance_test_200
288 * @tc.name calllog calllog stability testing update 10000
289 * @tc.desc update 10000
290 * @tc.level Level1
291 * @tc.size MediumTest
292 * @tc.type Function
293 */
HWTEST_F(StabilityTest, calllog_update_performance_test_200, testing::ext::TestSize.Level1)294 HWTEST_F(StabilityTest, calllog_update_performance_test_200, testing::ext::TestSize.Level1)
295 {
296 HILOG_INFO("--- calllog_update_performance_test_200 is starting! ---");
297 OHOS::Uri uriCalllog(CallLogUri::CALL_LOG);
298 OHOS::DataShare::DataShareValuesBucket updateValues;
299 updateValues.Put("answer_state", 1);
300 OHOS::DataShare::DataSharePredicates predicates;
301 predicates.GreaterThan("id", "0");
302 int updateCode = calllogAbility.Update(uriCalllog, predicates, updateValues);
303 HILOG_INFO("calllog_update_performance_test_200 : updateCode = %{public}d", updateCode);
304 EXPECT_EQ(updateCode, 0);
305 }
306
307 /*
308 * @tc.number calllog_query_performance_test_300
309 * @tc.name calllog calllog stability testing query 10000
310 * @tc.desc query 10000
311 * @tc.level Level1
312 * @tc.size MediumTest
313 * @tc.type Function
314 */
HWTEST_F(StabilityTest, calllog_query_performance_test_300, testing::ext::TestSize.Level1)315 HWTEST_F(StabilityTest, calllog_query_performance_test_300, testing::ext::TestSize.Level1)
316 {
317 HILOG_INFO("--- calllog_query_performance_test_300 is starting! ---");
318 OHOS::Uri uriCalllog(CallLogUri::CALL_LOG);
319 std::vector<std::string> columns;
320 columns.push_back("id");
321 columns.push_back("phone_number");
322 OHOS::DataShare::DataSharePredicates predicates;
323 predicates.GreaterThan("id", "0");
324 std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
325 calllogAbility.Query(uriCalllog, predicates, columns);
326 int rowCount = 0;
327 resultSet->GetRowCount(rowCount);
328 EXPECT_GT(rowCount, 9999);
329 resultSet->Close();
330 }
331
332 /*
333 * @tc.number calllog_delete_performance_test_400
334 * @tc.name calllog calllog stability testing delete 10000
335 * @tc.desc delete 10000
336 * @tc.level Level1
337 * @tc.size MediumTest
338 * @tc.type Function
339 */
HWTEST_F(StabilityTest, calllog_delete_performance_test_400, testing::ext::TestSize.Level1)340 HWTEST_F(StabilityTest, calllog_delete_performance_test_400, testing::ext::TestSize.Level1)
341 {
342 HILOG_INFO("--- calllog_delete_performance_test_400 is starting! ---");
343 OHOS::Uri uriCalllog(CallLogUri::CALL_LOG);
344 OHOS::DataShare::DataSharePredicates predicates;
345 predicates.GreaterThan("id", "0");
346 int deleteCode = calllogAbility.Delete(uriCalllog, predicates);
347 EXPECT_EQ(deleteCode, 0);
348 }
349
350 /*
351 * @tc.number voicemail_insert_performance_test_500
352 * @tc.name voicemail stability testing delete 10000
353 * @tc.desc delete 10000
354 * @tc.level Level1
355 * @tc.size MediumTest
356 * @tc.type Function
357 */
HWTEST_F(StabilityTest, voicemail_insert_performance_test_500, testing::ext::TestSize.Level1)358 HWTEST_F(StabilityTest, voicemail_insert_performance_test_500, testing::ext::TestSize.Level1)
359 {
360 OHOS::Uri uriVoiceMail(VoicemailUri::VOICEMAIL);
361 OHOS::DataShare::DataSharePredicates predicatesOne;
362 predicatesOne.GreaterThan("id", "0");
363 HILOG_INFO("voicemail_insert_performance_test_500 deleted start! ");
364 voicemailAbility.Delete(uriVoiceMail, predicatesOne);
365 HILOG_INFO("--- voicemail_insert_performance_test_500 is starting! ---");
366 std::vector<OHOS::DataShare::DataShareValuesBucket> values;
367 for (int i = 0; i < 10000; i++) {
368 OHOS::DataShare::DataShareValuesBucket voicemailValues;
369 voicemailValues.Put("phone_number", std::to_string(i + 1));
370 values.push_back(voicemailValues);
371 }
372 int batchInsertCode = voicemailAbility.BatchInsert(uriVoiceMail, values);
373 EXPECT_EQ(batchInsertCode, 0);
374 }
375
376 /*
377 * @tc.number voicemail_update_performance_test_600
378 * @tc.name voicemail stability testing update 10000
379 * @tc.desc update 10000
380 * @tc.level Level1
381 * @tc.size MediumTest
382 * @tc.type Function
383 */
HWTEST_F(StabilityTest, voicemail_update_performance_test_600, testing::ext::TestSize.Level1)384 HWTEST_F(StabilityTest, voicemail_update_performance_test_600, testing::ext::TestSize.Level1)
385 {
386 HILOG_INFO("--- voicemail_update_performance_test_600 is starting! ---");
387 OHOS::Uri uriVoiceMail(VoicemailUri::VOICEMAIL);
388 OHOS::DataShare::DataShareValuesBucket updateValues;
389 updateValues.Put("origin_type", "origin");
390 OHOS::DataShare::DataSharePredicates predicates;
391 predicates.GreaterThan("id", "0");
392 int updateCode = voicemailAbility.Update(uriVoiceMail, predicates, updateValues);
393 EXPECT_EQ(updateCode, 0);
394 }
395
396 /*
397 * @tc.number voicemail_query_performance_test_700
398 * @tc.name voicemail stability testing query 10000
399 * @tc.desc query 10000
400 * @tc.level Level1
401 * @tc.size MediumTest
402 * @tc.type Function
403 */
HWTEST_F(StabilityTest, voicemail_query_performance_test_700, testing::ext::TestSize.Level1)404 HWTEST_F(StabilityTest, voicemail_query_performance_test_700, testing::ext::TestSize.Level1)
405 {
406 HILOG_INFO("--- voicemail_query_performance_test_700 is starting! ---");
407 OHOS::Uri uriVoiceMail(VoicemailUri::VOICEMAIL);
408 std::vector<std::string> columns;
409 columns.push_back("id");
410 columns.push_back("phone_number");
411 OHOS::DataShare::DataSharePredicates predicates;
412 predicates.GreaterThan("id", "0");
413 std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
414 voicemailAbility.Query(uriVoiceMail, predicates, columns);
415 int rowCount = 0;
416 resultSet->GetRowCount(rowCount);
417 EXPECT_GT(rowCount, 9999);
418 resultSet->Close();
419 }
420
421 /*
422 * @tc.number voicemail_delete_performance_test_800
423 * @tc.name voicemail stability testing delete 10000
424 * @tc.desc delete 10000
425 * @tc.level Level1
426 * @tc.size MediumTest
427 * @tc.type Function
428 */
HWTEST_F(StabilityTest, voicemail_delete_performance_test_800, testing::ext::TestSize.Level1)429 HWTEST_F(StabilityTest, voicemail_delete_performance_test_800, testing::ext::TestSize.Level1)
430 {
431 HILOG_INFO("--- voicemail_delete_performance_test_800 is starting! ---");
432 OHOS::Uri uriVoiceMail(VoicemailUri::VOICEMAIL);
433 OHOS::DataShare::DataSharePredicates predicates;
434 predicates.GreaterThan("id", "0");
435 int deleteCode = voicemailAbility.Delete(uriVoiceMail, predicates);
436 EXPECT_EQ(deleteCode, 0);
437 }
438
HWTEST_F(StabilityTest, PerformanceTestDeleted, testing::ext::TestSize.Level1)439 HWTEST_F(StabilityTest, PerformanceTestDeleted, testing::ext::TestSize.Level1)
440 {
441 DeleteContact();
442 }
443 } // namespace Test
444 } // namespace Contacts