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 "performance_test.h"
17
18 #include <sys/time.h>
19
20 #include "test_common.h"
21
22 namespace Contacts {
23 namespace Test {
PerformanceTest()24 PerformanceTest::PerformanceTest()
25 {
26 }
27
~PerformanceTest()28 PerformanceTest::~PerformanceTest()
29 {
30 }
31
GetCurrentTime()32 int64_t PerformanceTest::GetCurrentTime()
33 {
34 int subtle = 1000000;
35 struct timeval time;
36 gettimeofday(&time, nullptr);
37 return (time.tv_sec * subtle + time.tv_usec);
38 }
39
CalcTime(int64_t startTime, int64_t endTime)40 int PerformanceTest::CalcTime(int64_t startTime, int64_t endTime)
41 {
42 return (int)(endTime - startTime);
43 }
44
DeleteContact()45 void PerformanceTest::DeleteContact()
46 {
47 OHOS::DataShare::DataSharePredicates predicates;
48 OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT);
49 predicates.NotEqualTo("id", "0");
50 predicates.And();
51 predicates.EqualTo("is_deleted", "0");
52 contactsDataAbility.Delete(uriRawContact, predicates);
53 int count = 0;
54 int deleteCount = 9999;
55 std::vector<std::string> columns;
56 OHOS::Uri uriRawContactComplete(ContactsUri::DELETED_RAW_CONTACT);
57 while (count < deleteCount) {
58 int time = Time::SLEEP_TIME_MERGE_DELETE;
59 std::chrono::milliseconds dura(time);
60 std::this_thread::sleep_for(dura);
61 OHOS::DataShare::DataSharePredicates predicates2;
62 std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
63 contactsDataAbility.Query(uriRawContactComplete, predicates2, columns);
64 resultSet->GetRowCount(count);
65 resultSet->Close();
66 }
67 int time = Time::SLEEP_TIME_MERGE_DELETE;
68 std::chrono::milliseconds dura(time);
69 std::this_thread::sleep_for(dura);
70 OHOS::DataShare::DataSharePredicates predicates3;
71 predicates3.NotEqualTo("id", "0");
72 contactsDataAbility.Delete(uriRawContactComplete, predicates3);
73 }
74
75 /*
76 * @tc.number raw_contact_insert_performance_test_900
77 * @tc.name raw_contact performance testing add 10000
78 * @tc.desc add 10000
79 * @tc.level Level1
80 * @tc.size MediumTest
81 * @tc.type Function
82 */
HWTEST_F(PerformanceTest, raw_contact_insert_performance_test_900, testing::ext::TestSize.Level1)83 HWTEST_F(PerformanceTest, raw_contact_insert_performance_test_900, testing::ext::TestSize.Level1)
84 {
85 HILOG_INFO("--- raw_contact_insert_performance_test_900 is starting! ---");
86 OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT);
87 std::vector<OHOS::DataShare::DataShareValuesBucket> values;
88 for (int i = 0; i < 10000; i++) {
89 OHOS::DataShare::DataShareValuesBucket rawContactValues;
90 std::string name("xiaoyan");
91 name.append(std::to_string(i + 1));
92 rawContactValues.Put("display_name", name);
93 rawContactValues.Put("company", "company");
94 rawContactValues.Put("position", "position");
95 values.push_back(rawContactValues);
96 }
97 HILOG_INFO("raw_contact_insert_performance_test_900 start! ");
98 int64_t startTime, endTime;
99 int elaps;
100 startTime = GetCurrentTime();
101 int batchInsertCode = contactsDataAbility.BatchInsert(uriRawContact, values);
102 endTime = GetCurrentTime();
103 elaps = CalcTime(startTime, endTime);
104 HILOG_INFO("raw_contact_insert_performance_test_900 : time is %{public}d", elaps);
105 ASSERT_LE(elaps, TIME_USEC_RAW_CONTACT_INSERT);
106 HILOG_INFO("raw_contact_insert_performance_test_900 finish! ");
107 HILOG_INFO("raw_contact_insert_performance_test_900 : batchInsertCode = %{public}d", batchInsertCode);
108 EXPECT_EQ(batchInsertCode, 0);
109 }
110
111 /*
112 * @tc.number raw_contact_update_performance_test_1000
113 * @tc.name raw_contact performance testing update 10000
114 * @tc.desc update 10000
115 * @tc.level Level1
116 * @tc.size MediumTest
117 * @tc.type Function
118 */
HWTEST_F(PerformanceTest, raw_contact_update_performance_test_1000, testing::ext::TestSize.Level1)119 HWTEST_F(PerformanceTest, raw_contact_update_performance_test_1000, testing::ext::TestSize.Level1)
120 {
121 HILOG_INFO("--- raw_contact_update_performance_test_1000 is starting! ---");
122 OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT);
123 OHOS::DataShare::DataShareValuesBucket updateValues;
124 updateValues.Put("favorite", 1);
125 OHOS::DataShare::DataSharePredicates predicates;
126 predicates.GreaterThan("id", "0");
127 predicates.And();
128 predicates.EqualTo("is_deleted", "0");
129 HILOG_INFO("raw_contact_update_performance_test_1000 start! ");
130 int64_t startTime, endTime;
131 int elaps;
132 startTime = GetCurrentTime();
133 int updateCode = contactsDataAbility.Update(uriRawContact, predicates, updateValues);
134 endTime = GetCurrentTime();
135 elaps = CalcTime(startTime, endTime);
136 HILOG_INFO("raw_contact_update_performance_test_1000 : time is %{public}d", elaps);
137 ASSERT_LE(elaps, TIME_USEC_RAW_CONTACT_UPDATE);
138 EXPECT_EQ(updateCode, 0);
139 }
140
141 /*
142 * @tc.number raw_contact_query_performance_test_1100
143 * @tc.name raw_contact performance testing query 10000
144 * @tc.desc query 10000
145 * @tc.level Level1
146 * @tc.size MediumTest
147 * @tc.type Function
148 */
HWTEST_F(PerformanceTest, raw_contact_query_performance_test_1100, testing::ext::TestSize.Level1)149 HWTEST_F(PerformanceTest, raw_contact_query_performance_test_1100, testing::ext::TestSize.Level1)
150 {
151 HILOG_INFO("--- raw_contact_query_performance_test_1100 is starting! ---");
152 OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT);
153 std::vector<std::string> columns;
154 columns.push_back("id");
155 columns.push_back("display_name");
156 columns.push_back("company");
157 columns.push_back("position");
158 OHOS::DataShare::DataSharePredicates predicates;
159 predicates.GreaterThan("id", "0");
160 predicates.And();
161 predicates.EqualTo("is_deleted", "0");
162 HILOG_INFO("raw_contact_query_performance_test_1100 start! ");
163 int64_t startTime, endTime;
164 int elaps;
165 startTime = GetCurrentTime();
166 std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
167 contactsDataAbility.Query(uriRawContact, predicates, columns);
168 int rowCount = 0;
169 resultSet->GetRowCount(rowCount);
170 EXPECT_GT(rowCount, 9999);
171 endTime = GetCurrentTime();
172 elaps = CalcTime(startTime, endTime);
173 resultSet->Close();
174 HILOG_INFO("raw_contact_query_performance_test_1100 : time is %{public}d", elaps);
175 ASSERT_LE(elaps, TIME_USEC_RAW_CONTACT_QUERY);
176 }
177
178 /*
179 * @tc.number raw_contact_delete_performance_test_1200
180 * @tc.name raw_contact performance testing delete 10000
181 * @tc.desc delete 10000
182 * @tc.level Level1
183 * @tc.size MediumTest
184 * @tc.type Function
185 */
HWTEST_F(PerformanceTest, raw_contact_delete_performance_test_1200, testing::ext::TestSize.Level1)186 HWTEST_F(PerformanceTest, raw_contact_delete_performance_test_1200, testing::ext::TestSize.Level1)
187 {
188 HILOG_INFO("--- raw_contact_delete_performance_test_1200 is starting! ---");
189 OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT);
190 OHOS::DataShare::DataSharePredicates predicates;
191 predicates.GreaterThan("id", "0");
192 predicates.And();
193 predicates.EqualTo("is_deleted", "0");
194 HILOG_INFO("raw_contact_delete_performance_test_1200 start! ");
195 int64_t startTime, endTime;
196 int elaps;
197 startTime = GetCurrentTime();
198 int deleteCode = contactsDataAbility.Delete(uriRawContact, predicates);
199 endTime = GetCurrentTime();
200 elaps = CalcTime(startTime, endTime);
201 HILOG_INFO("raw_contact_delete_performance_test_1200 : time is %{public}d", elaps);
202 ASSERT_LE(elaps, TIME_USEC_RAW_CONTACT_DELETED);
203 HILOG_INFO("raw_contact_delete_performance_test_1200 : deleteCode = %{public}d", deleteCode);
204 EXPECT_EQ(deleteCode, 0);
205 }
206
207 /*
208 * @tc.number contact_data_insert_performance_test_1300
209 * @tc.name contact_data performance testing add 10000
210 * @tc.desc add 10000
211 * @tc.level Level1
212 * @tc.size MediumTest
213 * @tc.type Function
214 */
HWTEST_F(PerformanceTest, contact_data_insert_performance_test_1300, testing::ext::TestSize.Level1)215 HWTEST_F(PerformanceTest, contact_data_insert_performance_test_1300, testing::ext::TestSize.Level1)
216 {
217 OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT);
218 OHOS::DataShare::DataShareValuesBucket rawContactValues;
219 std::string rawName("xiaoyan");
220 rawContactValues.Put("display_name", rawName);
221 rawContactValues.Put("company", "company");
222 rawContactValues.Put("position", "position");
223 int rawContactId = contactsDataAbility.Insert(uriRawContact, rawContactValues);
224 OHOS::DataShare::DataSharePredicates predicates;
225 predicates.NotEqualTo("id", "0");
226 predicates.And();
227 predicates.EqualTo("is_deleted", "0");
228 contactsDataAbility.Delete(uriRawContact, predicates);
229 HILOG_INFO("--- contact_data_insert_performance_test_1300 is starting! ---");
230 OHOS::Uri uriContactData(ContactsUri::CONTACT_DATA);
231 std::vector<OHOS::DataShare::DataShareValuesBucket> values;
232 for (int i = 0; i < 10000; i++) {
233 OHOS::DataShare::DataShareValuesBucket contactDataValues;
234 std::string name("xiaoyan");
235 name.append(std::to_string(i + 1));
236 contactDataValues.Put("raw_contact_id", rawContactId);
237 contactDataValues.Put("content_type", "name");
238 contactDataValues.Put("detail_info", name);
239 values.push_back(contactDataValues);
240 }
241 HILOG_INFO("contact_data_insert_performance_test_1300 start! ");
242 int64_t startTime, endTime;
243 int elaps;
244 startTime = GetCurrentTime();
245 int batchInsertCode = contactsDataAbility.BatchInsert(uriContactData, values);
246 endTime = GetCurrentTime();
247 elaps = CalcTime(startTime, endTime);
248 HILOG_INFO("contact_data_insert_performance_test_1300 : time is %{public}d", elaps);
249 ASSERT_LE(elaps, TIME_USEC_CONTACT_DATA_INSERT);
250 EXPECT_EQ(batchInsertCode, 0);
251 }
252
253 /*
254 * @tc.number contact_data_update_performance_test_1400
255 * @tc.name contact_data performance testing update 10000
256 * @tc.desc update 10000
257 * @tc.level Level1
258 * @tc.size MediumTest
259 * @tc.type Function
260 */
HWTEST_F(PerformanceTest, contact_data_update_performance_test_1400, testing::ext::TestSize.Level1)261 HWTEST_F(PerformanceTest, contact_data_update_performance_test_1400, testing::ext::TestSize.Level1)
262 {
263 HILOG_INFO("--- contact_data_update_performance_test_1400 is starting! ---");
264 OHOS::Uri uriContactData(ContactsUri::CONTACT_DATA);
265 OHOS::DataShare::DataShareValuesBucket updateValues;
266 updateValues.Put("syn_1", "test");
267 OHOS::DataShare::DataSharePredicates predicates;
268 predicates.GreaterThan("id", "0");
269 int64_t startTime, endTime;
270 int elaps;
271 startTime = GetCurrentTime();
272 int updateCode = contactsDataAbility.Update(uriContactData, predicates, updateValues);
273 endTime = GetCurrentTime();
274 elaps = CalcTime(startTime, endTime);
275 HILOG_INFO("contact_data_update_performance_test_1400 : time is %{public}d", elaps);
276 ASSERT_LE(elaps, TIME_USEC_CONTACT_DATA_UPDATE);
277 EXPECT_EQ(updateCode, 0);
278 }
279
280 /*
281 * @tc.number contact_data_query_performance_test_1500
282 * @tc.name contact_data performance testing query 10000
283 * @tc.desc query 10000
284 * @tc.level Level1
285 * @tc.size MediumTest
286 * @tc.type Function
287 */
HWTEST_F(PerformanceTest, contact_data_query_performance_test_1500, testing::ext::TestSize.Level1)288 HWTEST_F(PerformanceTest, contact_data_query_performance_test_1500, testing::ext::TestSize.Level1)
289 {
290 HILOG_INFO("--- contact_data_query_performance_test_1500 is starting! ---");
291 OHOS::Uri uriContactData(ContactsUri::CONTACT_DATA);
292 std::vector<std::string> columns;
293 columns.push_back("raw_contact_id");
294 columns.push_back("detail_info");
295 OHOS::DataShare::DataSharePredicates predicates;
296 predicates.GreaterThan("id", "0");
297 int64_t startTime, endTime;
298 int elaps;
299 startTime = GetCurrentTime();
300 std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
301 contactsDataAbility.Query(uriContactData, predicates, columns);
302 int rowCount = 0;
303 resultSet->GetRowCount(rowCount);
304 EXPECT_GT(rowCount, 9999);
305 endTime = GetCurrentTime();
306 elaps = CalcTime(startTime, endTime);
307 resultSet->Close();
308 HILOG_INFO("contact_data_query_performance_test_1500 : time is %{public}d", elaps);
309 ASSERT_LE(elaps, TIME_USEC_CONTACT_DATA_QUERY);
310 }
311
312 /*
313 * @tc.number contact_data_delete_performance_test_1600
314 * @tc.name contact_data performance testing delete 10000
315 * @tc.desc delete 10000
316 * @tc.level Level1
317 * @tc.size MediumTest
318 * @tc.type Function
319 */
HWTEST_F(PerformanceTest, contact_data_delete_performance_test_1600, testing::ext::TestSize.Level1)320 HWTEST_F(PerformanceTest, contact_data_delete_performance_test_1600, testing::ext::TestSize.Level1)
321 {
322 HILOG_INFO("--- contact_data_delete_performance_test_1600 is starting! ---");
323 OHOS::Uri uriContactData(ContactsUri::CONTACT_DATA);
324 OHOS::DataShare::DataSharePredicates predicates;
325 predicates.GreaterThan("id", "0");
326 int64_t startTime, endTime;
327 int elaps;
328 startTime = GetCurrentTime();
329 int deleteCode = contactsDataAbility.Delete(uriContactData, predicates);
330 endTime = GetCurrentTime();
331 elaps = CalcTime(startTime, endTime);
332 HILOG_INFO("contact_data_delete_performance_test_1600 : time is %{public}d", elaps);
333 ASSERT_LE(elaps, TIME_USEC_CONTACT_DATA_DELETED);
334 EXPECT_EQ(deleteCode, 0);
335 }
336
337 /*
338 * @tc.number calllog_insert_performance_test_100
339 * @tc.name calllog calllog performance testing add 10000
340 * @tc.desc add 10000
341 * @tc.level Level1
342 * @tc.size MediumTest
343 * @tc.type Function
344 */
HWTEST_F(PerformanceTest, calllog_insert_performance_test_100, testing::ext::TestSize.Level1)345 HWTEST_F(PerformanceTest, calllog_insert_performance_test_100, testing::ext::TestSize.Level1)
346 {
347 OHOS::Uri uriCalllog(CallLogUri::CALL_LOG);
348 OHOS::DataShare::DataSharePredicates predicatesOne;
349 predicatesOne.GreaterThan("id", "0");
350 HILOG_INFO("calllog_insert_performance_test_100 deleted start! ");
351 calllogAbility.Delete(uriCalllog, predicatesOne);
352 HILOG_INFO("--- calllog_insert_performance_test_100 is starting! ---");
353 std::vector<OHOS::DataShare::DataShareValuesBucket> values;
354 for (int i = 0; i < 10000; i++) {
355 OHOS::DataShare::DataShareValuesBucket calllogValues;
356 calllogValues.Put("phone_number", std::to_string(i + 1));
357 values.push_back(calllogValues);
358 }
359 int64_t startTime, endTime;
360 int elaps;
361 startTime = GetCurrentTime();
362 int batchInsertCode = calllogAbility.BatchInsert(uriCalllog, values);
363 endTime = GetCurrentTime();
364 elaps = CalcTime(startTime, endTime);
365 HILOG_INFO("calllog_insert_performance_test_100 : time is %{public}d", elaps);
366 ASSERT_LE(elaps, TIME_USEC_CALL_LOG_INSERT);
367 EXPECT_EQ(batchInsertCode, 0);
368 }
369
370 /*
371 * @tc.number calllog_update_performance_test_200
372 * @tc.name calllog calllog performance testing update 10000
373 * @tc.desc update 10000
374 * @tc.level Level1
375 * @tc.size MediumTest
376 * @tc.type Function
377 */
HWTEST_F(PerformanceTest, calllog_update_performance_test_200, testing::ext::TestSize.Level1)378 HWTEST_F(PerformanceTest, calllog_update_performance_test_200, testing::ext::TestSize.Level1)
379 {
380 HILOG_INFO("--- calllog_update_performance_test_200 is starting! ---");
381 OHOS::Uri uriCalllog(CallLogUri::CALL_LOG);
382 OHOS::DataShare::DataShareValuesBucket updateValues;
383 updateValues.Put("answer_state", 1);
384 OHOS::DataShare::DataSharePredicates predicates;
385 predicates.GreaterThan("id", "0");
386 int64_t startTime, endTime;
387 int elaps;
388 startTime = GetCurrentTime();
389 int updateCode = calllogAbility.Update(uriCalllog, predicates, updateValues);
390 endTime = GetCurrentTime();
391 elaps = CalcTime(startTime, endTime);
392 ASSERT_LE(elaps, TIME_USEC_CALL_LOG_UPDATE);
393 HILOG_INFO("calllog_update_performance_test_200 : time is %{public}d", elaps);
394 EXPECT_EQ(updateCode, 0);
395 }
396
397 /*
398 * @tc.number calllog_query_performance_test_300
399 * @tc.name calllog calllog performance testing query 10000
400 * @tc.desc query 10000
401 * @tc.level Level1
402 * @tc.size MediumTest
403 * @tc.type Function
404 */
HWTEST_F(PerformanceTest, calllog_query_performance_test_300, testing::ext::TestSize.Level1)405 HWTEST_F(PerformanceTest, calllog_query_performance_test_300, testing::ext::TestSize.Level1)
406 {
407 HILOG_INFO("--- calllog_query_performance_test_300 is starting! ---");
408 OHOS::Uri uriCalllog(CallLogUri::CALL_LOG);
409 std::vector<std::string> columns;
410 columns.push_back("id");
411 columns.push_back("phone_number");
412 OHOS::DataShare::DataSharePredicates predicates;
413 predicates.GreaterThan("id", "0");
414 int64_t startTime, endTime;
415 int elaps;
416 startTime = GetCurrentTime();
417 std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
418 calllogAbility.Query(uriCalllog, predicates, columns);
419 int rowCount = 0;
420 resultSet->GetRowCount(rowCount);
421 EXPECT_GT(rowCount, 9999);
422 resultSet->Close();
423 endTime = GetCurrentTime();
424 elaps = CalcTime(startTime, endTime);
425 HILOG_INFO("calllog_query_performance_test_300 : time is %{public}d", elaps);
426 ASSERT_LE(elaps, TIME_USEC_CALL_LOG_QUERY);
427 }
428
429 /*
430 * @tc.number calllog_delete_performance_test_400
431 * @tc.name calllog calllog performance testing delete 10000
432 * @tc.desc delete 10000
433 * @tc.level Level1
434 * @tc.size MediumTest
435 * @tc.type Function
436 */
HWTEST_F(PerformanceTest, calllog_delete_performance_test_400, testing::ext::TestSize.Level1)437 HWTEST_F(PerformanceTest, calllog_delete_performance_test_400, testing::ext::TestSize.Level1)
438 {
439 HILOG_INFO("--- calllog_delete_performance_test_400 is starting! ---");
440 OHOS::Uri uriCalllog(CallLogUri::CALL_LOG);
441 OHOS::DataShare::DataSharePredicates predicates;
442 predicates.GreaterThan("id", "0");
443 int64_t startTime, endTime;
444 int elaps;
445 startTime = GetCurrentTime();
446 int deleteCode = calllogAbility.Delete(uriCalllog, predicates);
447 endTime = GetCurrentTime();
448 elaps = CalcTime(startTime, endTime);
449 HILOG_INFO("calllog_delete_performance_test_400 : time is %{public}d", elaps);
450 ASSERT_LE(elaps, TIME_USEC_CALL_LOG_DELETED);
451 EXPECT_EQ(deleteCode, 0);
452 }
453
454 /*
455 * @tc.number voicemail_insert_performance_test_500
456 * @tc.name voicemail performance testing delete 10000
457 * @tc.desc delete 10000
458 * @tc.level Level1
459 * @tc.size MediumTest
460 * @tc.type Function
461 */
HWTEST_F(PerformanceTest, voicemail_insert_performance_test_500, testing::ext::TestSize.Level1)462 HWTEST_F(PerformanceTest, voicemail_insert_performance_test_500, testing::ext::TestSize.Level1)
463 {
464 OHOS::Uri uriVoiceMail(VoicemailUri::VOICEMAIL);
465 OHOS::DataShare::DataSharePredicates predicatesOne;
466 predicatesOne.GreaterThan("id", "0");
467 HILOG_INFO("voicemail_insert_performance_test_500 deleted start! ");
468 voicemailAbility.Delete(uriVoiceMail, predicatesOne);
469 HILOG_INFO("--- voicemail_insert_performance_test_500 is starting! ---");
470 std::vector<OHOS::DataShare::DataShareValuesBucket> values;
471 for (int i = 0; i < 10000; i++) {
472 OHOS::DataShare::DataShareValuesBucket voicemailValues;
473 voicemailValues.Put("phone_number", std::to_string(i + 1));
474 values.push_back(voicemailValues);
475 }
476 HILOG_INFO("voicemail_insert_performance_test_500 start! ");
477 int64_t startTime, endTime;
478 int elaps;
479 startTime = GetCurrentTime();
480 int batchInsertCode = voicemailAbility.BatchInsert(uriVoiceMail, values);
481 endTime = GetCurrentTime();
482 elaps = CalcTime(startTime, endTime);
483 HILOG_INFO("voicemail_insert_performance_test_500 : time is %{public}d", elaps);
484 ASSERT_LE(elaps, TIME_USEC_VOICEMAIL_INSERT);
485 EXPECT_EQ(batchInsertCode, 0);
486 }
487
488 /*
489 * @tc.number voicemail_update_performance_test_600
490 * @tc.name voicemail performance testing update 10000
491 * @tc.desc update 10000
492 * @tc.level Level1
493 * @tc.size MediumTest
494 * @tc.type Function
495 */
HWTEST_F(PerformanceTest, voicemail_update_performance_test_600, testing::ext::TestSize.Level1)496 HWTEST_F(PerformanceTest, voicemail_update_performance_test_600, testing::ext::TestSize.Level1)
497 {
498 HILOG_INFO("--- voicemail_update_performance_test_600 is starting! ---");
499 OHOS::Uri uriVoiceMail(VoicemailUri::VOICEMAIL);
500 OHOS::DataShare::DataShareValuesBucket updateValues;
501 updateValues.Put("origin_type", "origin");
502 OHOS::DataShare::DataSharePredicates predicates;
503 predicates.GreaterThan("id", "0");
504 int64_t startTime, endTime;
505 int elaps;
506 startTime = GetCurrentTime();
507 int updateCode = voicemailAbility.Update(uriVoiceMail, predicates, updateValues);
508 endTime = GetCurrentTime();
509 elaps = CalcTime(startTime, endTime);
510 HILOG_INFO("voicemail_update_performance_test_600 : time is %{public}d", elaps);
511 ASSERT_LE(elaps, TIME_USEC_VOICEMAIL_UPDATE);
512 EXPECT_EQ(updateCode, 0);
513 }
514
515 /*
516 * @tc.number voicemail_query_performance_test_700
517 * @tc.name voicemail performance testing query 10000
518 * @tc.desc query 10000
519 * @tc.level Level1
520 * @tc.size MediumTest
521 * @tc.type Function
522 */
HWTEST_F(PerformanceTest, voicemail_query_performance_test_700, testing::ext::TestSize.Level1)523 HWTEST_F(PerformanceTest, voicemail_query_performance_test_700, testing::ext::TestSize.Level1)
524 {
525 HILOG_INFO("--- voicemail_query_performance_test_700 is starting! ---");
526 std::string tag("voicemail_query_performance_test_700");
527 OHOS::Uri uriVoiceMail(VoicemailUri::VOICEMAIL);
528 std::vector<std::string> columns;
529 columns.push_back("id");
530 columns.push_back("phone_number");
531 OHOS::DataShare::DataSharePredicates predicates;
532 predicates.GreaterThan("id", "0");
533 HILOG_INFO("voicemail_query_performance_test_700 start! ");
534 int64_t startTime, endTime;
535 int elaps;
536 startTime = GetCurrentTime();
537 std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
538 voicemailAbility.Query(uriVoiceMail, predicates, columns);
539 int rowCount = 0;
540 resultSet->GetRowCount(rowCount);
541 EXPECT_GT(rowCount, 9999);
542 endTime = GetCurrentTime();
543 elaps = CalcTime(startTime, endTime);
544 resultSet->Close();
545 HILOG_INFO("voicemail_query_performance_test_700 : time is %{public}d", elaps);
546 ASSERT_LE(elaps, TIME_USEC_VOICEMAIL_QUERY);
547 }
548
549 /*
550 * @tc.number voicemail_delete_performance_test_800
551 * @tc.name voicemail performance testing delete 10000
552 * @tc.desc delete 10000
553 * @tc.level Level1
554 * @tc.size MediumTest
555 * @tc.type Function
556 */
HWTEST_F(PerformanceTest, voicemail_delete_performance_test_800, testing::ext::TestSize.Level1)557 HWTEST_F(PerformanceTest, voicemail_delete_performance_test_800, testing::ext::TestSize.Level1)
558 {
559 HILOG_INFO("--- voicemail_delete_performance_test_800 is starting! ---");
560 OHOS::Uri uriVoiceMail(VoicemailUri::VOICEMAIL);
561 OHOS::DataShare::DataSharePredicates predicates;
562 predicates.GreaterThan("id", "0");
563 HILOG_INFO("voicemail_delete_performance_test_800 start! ");
564 int64_t startTime, endTime;
565 int elaps;
566 startTime = GetCurrentTime();
567 int deleteCode = voicemailAbility.Delete(uriVoiceMail, predicates);
568 endTime = GetCurrentTime();
569 elaps = CalcTime(startTime, endTime);
570 HILOG_INFO("voicemail_delete_performance_test_800 : time is %{public}d", elaps);
571 ASSERT_LE(elaps, TIME_USEC_VOICEMAIL_DELETED);
572 EXPECT_EQ(deleteCode, 0);
573 }
574
HWTEST_F(PerformanceTest, PerformanceTestDeleted, testing::ext::TestSize.Level1)575 HWTEST_F(PerformanceTest, PerformanceTestDeleted, testing::ext::TestSize.Level1)
576 {
577 DeleteContact();
578 }
579 } // namespace Test
580 } // namespace Contacts