1115cd2caSopenharmony_ci/* 2115cd2caSopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 3115cd2caSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4115cd2caSopenharmony_ci * you may not use this file except in compliance with the License. 5115cd2caSopenharmony_ci * You may obtain a copy of the License at 6115cd2caSopenharmony_ci * 7115cd2caSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8115cd2caSopenharmony_ci * 9115cd2caSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10115cd2caSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11115cd2caSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12115cd2caSopenharmony_ci * See the License for the specific language governing permissions and 13115cd2caSopenharmony_ci * limitations under the License. 14115cd2caSopenharmony_ci */ 15115cd2caSopenharmony_ci 16115cd2caSopenharmony_ci#include "performance_test.h" 17115cd2caSopenharmony_ci 18115cd2caSopenharmony_ci#include <sys/time.h> 19115cd2caSopenharmony_ci 20115cd2caSopenharmony_ci#include "test_common.h" 21115cd2caSopenharmony_ci 22115cd2caSopenharmony_cinamespace Contacts { 23115cd2caSopenharmony_cinamespace Test { 24115cd2caSopenharmony_ciPerformanceTest::PerformanceTest() 25115cd2caSopenharmony_ci{ 26115cd2caSopenharmony_ci} 27115cd2caSopenharmony_ci 28115cd2caSopenharmony_ciPerformanceTest::~PerformanceTest() 29115cd2caSopenharmony_ci{ 30115cd2caSopenharmony_ci} 31115cd2caSopenharmony_ci 32115cd2caSopenharmony_ciint64_t PerformanceTest::GetCurrentTime() 33115cd2caSopenharmony_ci{ 34115cd2caSopenharmony_ci int subtle = 1000000; 35115cd2caSopenharmony_ci struct timeval time; 36115cd2caSopenharmony_ci gettimeofday(&time, nullptr); 37115cd2caSopenharmony_ci return (time.tv_sec * subtle + time.tv_usec); 38115cd2caSopenharmony_ci} 39115cd2caSopenharmony_ci 40115cd2caSopenharmony_ciint PerformanceTest::CalcTime(int64_t startTime, int64_t endTime) 41115cd2caSopenharmony_ci{ 42115cd2caSopenharmony_ci return (int)(endTime - startTime); 43115cd2caSopenharmony_ci} 44115cd2caSopenharmony_ci 45115cd2caSopenharmony_civoid PerformanceTest::DeleteContact() 46115cd2caSopenharmony_ci{ 47115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 48115cd2caSopenharmony_ci OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT); 49115cd2caSopenharmony_ci predicates.NotEqualTo("id", "0"); 50115cd2caSopenharmony_ci predicates.And(); 51115cd2caSopenharmony_ci predicates.EqualTo("is_deleted", "0"); 52115cd2caSopenharmony_ci contactsDataAbility.Delete(uriRawContact, predicates); 53115cd2caSopenharmony_ci int count = 0; 54115cd2caSopenharmony_ci int deleteCount = 9999; 55115cd2caSopenharmony_ci std::vector<std::string> columns; 56115cd2caSopenharmony_ci OHOS::Uri uriRawContactComplete(ContactsUri::DELETED_RAW_CONTACT); 57115cd2caSopenharmony_ci while (count < deleteCount) { 58115cd2caSopenharmony_ci int time = Time::SLEEP_TIME_MERGE_DELETE; 59115cd2caSopenharmony_ci std::chrono::milliseconds dura(time); 60115cd2caSopenharmony_ci std::this_thread::sleep_for(dura); 61115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates2; 62115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = 63115cd2caSopenharmony_ci contactsDataAbility.Query(uriRawContactComplete, predicates2, columns); 64115cd2caSopenharmony_ci resultSet->GetRowCount(count); 65115cd2caSopenharmony_ci resultSet->Close(); 66115cd2caSopenharmony_ci } 67115cd2caSopenharmony_ci int time = Time::SLEEP_TIME_MERGE_DELETE; 68115cd2caSopenharmony_ci std::chrono::milliseconds dura(time); 69115cd2caSopenharmony_ci std::this_thread::sleep_for(dura); 70115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates3; 71115cd2caSopenharmony_ci predicates3.NotEqualTo("id", "0"); 72115cd2caSopenharmony_ci contactsDataAbility.Delete(uriRawContactComplete, predicates3); 73115cd2caSopenharmony_ci} 74115cd2caSopenharmony_ci 75115cd2caSopenharmony_ci/* 76115cd2caSopenharmony_ci * @tc.number raw_contact_insert_performance_test_900 77115cd2caSopenharmony_ci * @tc.name raw_contact performance testing add 10000 78115cd2caSopenharmony_ci * @tc.desc add 10000 79115cd2caSopenharmony_ci * @tc.level Level1 80115cd2caSopenharmony_ci * @tc.size MediumTest 81115cd2caSopenharmony_ci * @tc.type Function 82115cd2caSopenharmony_ci */ 83115cd2caSopenharmony_ciHWTEST_F(PerformanceTest, raw_contact_insert_performance_test_900, testing::ext::TestSize.Level1) 84115cd2caSopenharmony_ci{ 85115cd2caSopenharmony_ci HILOG_INFO("--- raw_contact_insert_performance_test_900 is starting! ---"); 86115cd2caSopenharmony_ci OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT); 87115cd2caSopenharmony_ci std::vector<OHOS::DataShare::DataShareValuesBucket> values; 88115cd2caSopenharmony_ci for (int i = 0; i < 10000; i++) { 89115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket rawContactValues; 90115cd2caSopenharmony_ci std::string name("xiaoyan"); 91115cd2caSopenharmony_ci name.append(std::to_string(i + 1)); 92115cd2caSopenharmony_ci rawContactValues.Put("display_name", name); 93115cd2caSopenharmony_ci rawContactValues.Put("company", "company"); 94115cd2caSopenharmony_ci rawContactValues.Put("position", "position"); 95115cd2caSopenharmony_ci values.push_back(rawContactValues); 96115cd2caSopenharmony_ci } 97115cd2caSopenharmony_ci HILOG_INFO("raw_contact_insert_performance_test_900 start! "); 98115cd2caSopenharmony_ci int64_t startTime, endTime; 99115cd2caSopenharmony_ci int elaps; 100115cd2caSopenharmony_ci startTime = GetCurrentTime(); 101115cd2caSopenharmony_ci int batchInsertCode = contactsDataAbility.BatchInsert(uriRawContact, values); 102115cd2caSopenharmony_ci endTime = GetCurrentTime(); 103115cd2caSopenharmony_ci elaps = CalcTime(startTime, endTime); 104115cd2caSopenharmony_ci HILOG_INFO("raw_contact_insert_performance_test_900 : time is %{public}d", elaps); 105115cd2caSopenharmony_ci ASSERT_LE(elaps, TIME_USEC_RAW_CONTACT_INSERT); 106115cd2caSopenharmony_ci HILOG_INFO("raw_contact_insert_performance_test_900 finish! "); 107115cd2caSopenharmony_ci HILOG_INFO("raw_contact_insert_performance_test_900 : batchInsertCode = %{public}d", batchInsertCode); 108115cd2caSopenharmony_ci EXPECT_EQ(batchInsertCode, 0); 109115cd2caSopenharmony_ci} 110115cd2caSopenharmony_ci 111115cd2caSopenharmony_ci/* 112115cd2caSopenharmony_ci * @tc.number raw_contact_update_performance_test_1000 113115cd2caSopenharmony_ci * @tc.name raw_contact performance testing update 10000 114115cd2caSopenharmony_ci * @tc.desc update 10000 115115cd2caSopenharmony_ci * @tc.level Level1 116115cd2caSopenharmony_ci * @tc.size MediumTest 117115cd2caSopenharmony_ci * @tc.type Function 118115cd2caSopenharmony_ci */ 119115cd2caSopenharmony_ciHWTEST_F(PerformanceTest, raw_contact_update_performance_test_1000, testing::ext::TestSize.Level1) 120115cd2caSopenharmony_ci{ 121115cd2caSopenharmony_ci HILOG_INFO("--- raw_contact_update_performance_test_1000 is starting! ---"); 122115cd2caSopenharmony_ci OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT); 123115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket updateValues; 124115cd2caSopenharmony_ci updateValues.Put("favorite", 1); 125115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 126115cd2caSopenharmony_ci predicates.GreaterThan("id", "0"); 127115cd2caSopenharmony_ci predicates.And(); 128115cd2caSopenharmony_ci predicates.EqualTo("is_deleted", "0"); 129115cd2caSopenharmony_ci HILOG_INFO("raw_contact_update_performance_test_1000 start! "); 130115cd2caSopenharmony_ci int64_t startTime, endTime; 131115cd2caSopenharmony_ci int elaps; 132115cd2caSopenharmony_ci startTime = GetCurrentTime(); 133115cd2caSopenharmony_ci int updateCode = contactsDataAbility.Update(uriRawContact, predicates, updateValues); 134115cd2caSopenharmony_ci endTime = GetCurrentTime(); 135115cd2caSopenharmony_ci elaps = CalcTime(startTime, endTime); 136115cd2caSopenharmony_ci HILOG_INFO("raw_contact_update_performance_test_1000 : time is %{public}d", elaps); 137115cd2caSopenharmony_ci ASSERT_LE(elaps, TIME_USEC_RAW_CONTACT_UPDATE); 138115cd2caSopenharmony_ci EXPECT_EQ(updateCode, 0); 139115cd2caSopenharmony_ci} 140115cd2caSopenharmony_ci 141115cd2caSopenharmony_ci/* 142115cd2caSopenharmony_ci * @tc.number raw_contact_query_performance_test_1100 143115cd2caSopenharmony_ci * @tc.name raw_contact performance testing query 10000 144115cd2caSopenharmony_ci * @tc.desc query 10000 145115cd2caSopenharmony_ci * @tc.level Level1 146115cd2caSopenharmony_ci * @tc.size MediumTest 147115cd2caSopenharmony_ci * @tc.type Function 148115cd2caSopenharmony_ci */ 149115cd2caSopenharmony_ciHWTEST_F(PerformanceTest, raw_contact_query_performance_test_1100, testing::ext::TestSize.Level1) 150115cd2caSopenharmony_ci{ 151115cd2caSopenharmony_ci HILOG_INFO("--- raw_contact_query_performance_test_1100 is starting! ---"); 152115cd2caSopenharmony_ci OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT); 153115cd2caSopenharmony_ci std::vector<std::string> columns; 154115cd2caSopenharmony_ci columns.push_back("id"); 155115cd2caSopenharmony_ci columns.push_back("display_name"); 156115cd2caSopenharmony_ci columns.push_back("company"); 157115cd2caSopenharmony_ci columns.push_back("position"); 158115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 159115cd2caSopenharmony_ci predicates.GreaterThan("id", "0"); 160115cd2caSopenharmony_ci predicates.And(); 161115cd2caSopenharmony_ci predicates.EqualTo("is_deleted", "0"); 162115cd2caSopenharmony_ci HILOG_INFO("raw_contact_query_performance_test_1100 start! "); 163115cd2caSopenharmony_ci int64_t startTime, endTime; 164115cd2caSopenharmony_ci int elaps; 165115cd2caSopenharmony_ci startTime = GetCurrentTime(); 166115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = 167115cd2caSopenharmony_ci contactsDataAbility.Query(uriRawContact, predicates, columns); 168115cd2caSopenharmony_ci int rowCount = 0; 169115cd2caSopenharmony_ci resultSet->GetRowCount(rowCount); 170115cd2caSopenharmony_ci EXPECT_GT(rowCount, 9999); 171115cd2caSopenharmony_ci endTime = GetCurrentTime(); 172115cd2caSopenharmony_ci elaps = CalcTime(startTime, endTime); 173115cd2caSopenharmony_ci resultSet->Close(); 174115cd2caSopenharmony_ci HILOG_INFO("raw_contact_query_performance_test_1100 : time is %{public}d", elaps); 175115cd2caSopenharmony_ci ASSERT_LE(elaps, TIME_USEC_RAW_CONTACT_QUERY); 176115cd2caSopenharmony_ci} 177115cd2caSopenharmony_ci 178115cd2caSopenharmony_ci/* 179115cd2caSopenharmony_ci * @tc.number raw_contact_delete_performance_test_1200 180115cd2caSopenharmony_ci * @tc.name raw_contact performance testing delete 10000 181115cd2caSopenharmony_ci * @tc.desc delete 10000 182115cd2caSopenharmony_ci * @tc.level Level1 183115cd2caSopenharmony_ci * @tc.size MediumTest 184115cd2caSopenharmony_ci * @tc.type Function 185115cd2caSopenharmony_ci */ 186115cd2caSopenharmony_ciHWTEST_F(PerformanceTest, raw_contact_delete_performance_test_1200, testing::ext::TestSize.Level1) 187115cd2caSopenharmony_ci{ 188115cd2caSopenharmony_ci HILOG_INFO("--- raw_contact_delete_performance_test_1200 is starting! ---"); 189115cd2caSopenharmony_ci OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT); 190115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 191115cd2caSopenharmony_ci predicates.GreaterThan("id", "0"); 192115cd2caSopenharmony_ci predicates.And(); 193115cd2caSopenharmony_ci predicates.EqualTo("is_deleted", "0"); 194115cd2caSopenharmony_ci HILOG_INFO("raw_contact_delete_performance_test_1200 start! "); 195115cd2caSopenharmony_ci int64_t startTime, endTime; 196115cd2caSopenharmony_ci int elaps; 197115cd2caSopenharmony_ci startTime = GetCurrentTime(); 198115cd2caSopenharmony_ci int deleteCode = contactsDataAbility.Delete(uriRawContact, predicates); 199115cd2caSopenharmony_ci endTime = GetCurrentTime(); 200115cd2caSopenharmony_ci elaps = CalcTime(startTime, endTime); 201115cd2caSopenharmony_ci HILOG_INFO("raw_contact_delete_performance_test_1200 : time is %{public}d", elaps); 202115cd2caSopenharmony_ci ASSERT_LE(elaps, TIME_USEC_RAW_CONTACT_DELETED); 203115cd2caSopenharmony_ci HILOG_INFO("raw_contact_delete_performance_test_1200 : deleteCode = %{public}d", deleteCode); 204115cd2caSopenharmony_ci EXPECT_EQ(deleteCode, 0); 205115cd2caSopenharmony_ci} 206115cd2caSopenharmony_ci 207115cd2caSopenharmony_ci/* 208115cd2caSopenharmony_ci * @tc.number contact_data_insert_performance_test_1300 209115cd2caSopenharmony_ci * @tc.name contact_data performance testing add 10000 210115cd2caSopenharmony_ci * @tc.desc add 10000 211115cd2caSopenharmony_ci * @tc.level Level1 212115cd2caSopenharmony_ci * @tc.size MediumTest 213115cd2caSopenharmony_ci * @tc.type Function 214115cd2caSopenharmony_ci */ 215115cd2caSopenharmony_ciHWTEST_F(PerformanceTest, contact_data_insert_performance_test_1300, testing::ext::TestSize.Level1) 216115cd2caSopenharmony_ci{ 217115cd2caSopenharmony_ci OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT); 218115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket rawContactValues; 219115cd2caSopenharmony_ci std::string rawName("xiaoyan"); 220115cd2caSopenharmony_ci rawContactValues.Put("display_name", rawName); 221115cd2caSopenharmony_ci rawContactValues.Put("company", "company"); 222115cd2caSopenharmony_ci rawContactValues.Put("position", "position"); 223115cd2caSopenharmony_ci int rawContactId = contactsDataAbility.Insert(uriRawContact, rawContactValues); 224115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 225115cd2caSopenharmony_ci predicates.NotEqualTo("id", "0"); 226115cd2caSopenharmony_ci predicates.And(); 227115cd2caSopenharmony_ci predicates.EqualTo("is_deleted", "0"); 228115cd2caSopenharmony_ci contactsDataAbility.Delete(uriRawContact, predicates); 229115cd2caSopenharmony_ci HILOG_INFO("--- contact_data_insert_performance_test_1300 is starting! ---"); 230115cd2caSopenharmony_ci OHOS::Uri uriContactData(ContactsUri::CONTACT_DATA); 231115cd2caSopenharmony_ci std::vector<OHOS::DataShare::DataShareValuesBucket> values; 232115cd2caSopenharmony_ci for (int i = 0; i < 10000; i++) { 233115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket contactDataValues; 234115cd2caSopenharmony_ci std::string name("xiaoyan"); 235115cd2caSopenharmony_ci name.append(std::to_string(i + 1)); 236115cd2caSopenharmony_ci contactDataValues.Put("raw_contact_id", rawContactId); 237115cd2caSopenharmony_ci contactDataValues.Put("content_type", "name"); 238115cd2caSopenharmony_ci contactDataValues.Put("detail_info", name); 239115cd2caSopenharmony_ci values.push_back(contactDataValues); 240115cd2caSopenharmony_ci } 241115cd2caSopenharmony_ci HILOG_INFO("contact_data_insert_performance_test_1300 start! "); 242115cd2caSopenharmony_ci int64_t startTime, endTime; 243115cd2caSopenharmony_ci int elaps; 244115cd2caSopenharmony_ci startTime = GetCurrentTime(); 245115cd2caSopenharmony_ci int batchInsertCode = contactsDataAbility.BatchInsert(uriContactData, values); 246115cd2caSopenharmony_ci endTime = GetCurrentTime(); 247115cd2caSopenharmony_ci elaps = CalcTime(startTime, endTime); 248115cd2caSopenharmony_ci HILOG_INFO("contact_data_insert_performance_test_1300 : time is %{public}d", elaps); 249115cd2caSopenharmony_ci ASSERT_LE(elaps, TIME_USEC_CONTACT_DATA_INSERT); 250115cd2caSopenharmony_ci EXPECT_EQ(batchInsertCode, 0); 251115cd2caSopenharmony_ci} 252115cd2caSopenharmony_ci 253115cd2caSopenharmony_ci/* 254115cd2caSopenharmony_ci * @tc.number contact_data_update_performance_test_1400 255115cd2caSopenharmony_ci * @tc.name contact_data performance testing update 10000 256115cd2caSopenharmony_ci * @tc.desc update 10000 257115cd2caSopenharmony_ci * @tc.level Level1 258115cd2caSopenharmony_ci * @tc.size MediumTest 259115cd2caSopenharmony_ci * @tc.type Function 260115cd2caSopenharmony_ci */ 261115cd2caSopenharmony_ciHWTEST_F(PerformanceTest, contact_data_update_performance_test_1400, testing::ext::TestSize.Level1) 262115cd2caSopenharmony_ci{ 263115cd2caSopenharmony_ci HILOG_INFO("--- contact_data_update_performance_test_1400 is starting! ---"); 264115cd2caSopenharmony_ci OHOS::Uri uriContactData(ContactsUri::CONTACT_DATA); 265115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket updateValues; 266115cd2caSopenharmony_ci updateValues.Put("syn_1", "test"); 267115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 268115cd2caSopenharmony_ci predicates.GreaterThan("id", "0"); 269115cd2caSopenharmony_ci int64_t startTime, endTime; 270115cd2caSopenharmony_ci int elaps; 271115cd2caSopenharmony_ci startTime = GetCurrentTime(); 272115cd2caSopenharmony_ci int updateCode = contactsDataAbility.Update(uriContactData, predicates, updateValues); 273115cd2caSopenharmony_ci endTime = GetCurrentTime(); 274115cd2caSopenharmony_ci elaps = CalcTime(startTime, endTime); 275115cd2caSopenharmony_ci HILOG_INFO("contact_data_update_performance_test_1400 : time is %{public}d", elaps); 276115cd2caSopenharmony_ci ASSERT_LE(elaps, TIME_USEC_CONTACT_DATA_UPDATE); 277115cd2caSopenharmony_ci EXPECT_EQ(updateCode, 0); 278115cd2caSopenharmony_ci} 279115cd2caSopenharmony_ci 280115cd2caSopenharmony_ci/* 281115cd2caSopenharmony_ci * @tc.number contact_data_query_performance_test_1500 282115cd2caSopenharmony_ci * @tc.name contact_data performance testing query 10000 283115cd2caSopenharmony_ci * @tc.desc query 10000 284115cd2caSopenharmony_ci * @tc.level Level1 285115cd2caSopenharmony_ci * @tc.size MediumTest 286115cd2caSopenharmony_ci * @tc.type Function 287115cd2caSopenharmony_ci */ 288115cd2caSopenharmony_ciHWTEST_F(PerformanceTest, contact_data_query_performance_test_1500, testing::ext::TestSize.Level1) 289115cd2caSopenharmony_ci{ 290115cd2caSopenharmony_ci HILOG_INFO("--- contact_data_query_performance_test_1500 is starting! ---"); 291115cd2caSopenharmony_ci OHOS::Uri uriContactData(ContactsUri::CONTACT_DATA); 292115cd2caSopenharmony_ci std::vector<std::string> columns; 293115cd2caSopenharmony_ci columns.push_back("raw_contact_id"); 294115cd2caSopenharmony_ci columns.push_back("detail_info"); 295115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 296115cd2caSopenharmony_ci predicates.GreaterThan("id", "0"); 297115cd2caSopenharmony_ci int64_t startTime, endTime; 298115cd2caSopenharmony_ci int elaps; 299115cd2caSopenharmony_ci startTime = GetCurrentTime(); 300115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = 301115cd2caSopenharmony_ci contactsDataAbility.Query(uriContactData, predicates, columns); 302115cd2caSopenharmony_ci int rowCount = 0; 303115cd2caSopenharmony_ci resultSet->GetRowCount(rowCount); 304115cd2caSopenharmony_ci EXPECT_GT(rowCount, 9999); 305115cd2caSopenharmony_ci endTime = GetCurrentTime(); 306115cd2caSopenharmony_ci elaps = CalcTime(startTime, endTime); 307115cd2caSopenharmony_ci resultSet->Close(); 308115cd2caSopenharmony_ci HILOG_INFO("contact_data_query_performance_test_1500 : time is %{public}d", elaps); 309115cd2caSopenharmony_ci ASSERT_LE(elaps, TIME_USEC_CONTACT_DATA_QUERY); 310115cd2caSopenharmony_ci} 311115cd2caSopenharmony_ci 312115cd2caSopenharmony_ci/* 313115cd2caSopenharmony_ci * @tc.number contact_data_delete_performance_test_1600 314115cd2caSopenharmony_ci * @tc.name contact_data performance testing delete 10000 315115cd2caSopenharmony_ci * @tc.desc delete 10000 316115cd2caSopenharmony_ci * @tc.level Level1 317115cd2caSopenharmony_ci * @tc.size MediumTest 318115cd2caSopenharmony_ci * @tc.type Function 319115cd2caSopenharmony_ci */ 320115cd2caSopenharmony_ciHWTEST_F(PerformanceTest, contact_data_delete_performance_test_1600, testing::ext::TestSize.Level1) 321115cd2caSopenharmony_ci{ 322115cd2caSopenharmony_ci HILOG_INFO("--- contact_data_delete_performance_test_1600 is starting! ---"); 323115cd2caSopenharmony_ci OHOS::Uri uriContactData(ContactsUri::CONTACT_DATA); 324115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 325115cd2caSopenharmony_ci predicates.GreaterThan("id", "0"); 326115cd2caSopenharmony_ci int64_t startTime, endTime; 327115cd2caSopenharmony_ci int elaps; 328115cd2caSopenharmony_ci startTime = GetCurrentTime(); 329115cd2caSopenharmony_ci int deleteCode = contactsDataAbility.Delete(uriContactData, predicates); 330115cd2caSopenharmony_ci endTime = GetCurrentTime(); 331115cd2caSopenharmony_ci elaps = CalcTime(startTime, endTime); 332115cd2caSopenharmony_ci HILOG_INFO("contact_data_delete_performance_test_1600 : time is %{public}d", elaps); 333115cd2caSopenharmony_ci ASSERT_LE(elaps, TIME_USEC_CONTACT_DATA_DELETED); 334115cd2caSopenharmony_ci EXPECT_EQ(deleteCode, 0); 335115cd2caSopenharmony_ci} 336115cd2caSopenharmony_ci 337115cd2caSopenharmony_ci/* 338115cd2caSopenharmony_ci * @tc.number calllog_insert_performance_test_100 339115cd2caSopenharmony_ci * @tc.name calllog calllog performance testing add 10000 340115cd2caSopenharmony_ci * @tc.desc add 10000 341115cd2caSopenharmony_ci * @tc.level Level1 342115cd2caSopenharmony_ci * @tc.size MediumTest 343115cd2caSopenharmony_ci * @tc.type Function 344115cd2caSopenharmony_ci */ 345115cd2caSopenharmony_ciHWTEST_F(PerformanceTest, calllog_insert_performance_test_100, testing::ext::TestSize.Level1) 346115cd2caSopenharmony_ci{ 347115cd2caSopenharmony_ci OHOS::Uri uriCalllog(CallLogUri::CALL_LOG); 348115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicatesOne; 349115cd2caSopenharmony_ci predicatesOne.GreaterThan("id", "0"); 350115cd2caSopenharmony_ci HILOG_INFO("calllog_insert_performance_test_100 deleted start! "); 351115cd2caSopenharmony_ci calllogAbility.Delete(uriCalllog, predicatesOne); 352115cd2caSopenharmony_ci HILOG_INFO("--- calllog_insert_performance_test_100 is starting! ---"); 353115cd2caSopenharmony_ci std::vector<OHOS::DataShare::DataShareValuesBucket> values; 354115cd2caSopenharmony_ci for (int i = 0; i < 10000; i++) { 355115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket calllogValues; 356115cd2caSopenharmony_ci calllogValues.Put("phone_number", std::to_string(i + 1)); 357115cd2caSopenharmony_ci values.push_back(calllogValues); 358115cd2caSopenharmony_ci } 359115cd2caSopenharmony_ci int64_t startTime, endTime; 360115cd2caSopenharmony_ci int elaps; 361115cd2caSopenharmony_ci startTime = GetCurrentTime(); 362115cd2caSopenharmony_ci int batchInsertCode = calllogAbility.BatchInsert(uriCalllog, values); 363115cd2caSopenharmony_ci endTime = GetCurrentTime(); 364115cd2caSopenharmony_ci elaps = CalcTime(startTime, endTime); 365115cd2caSopenharmony_ci HILOG_INFO("calllog_insert_performance_test_100 : time is %{public}d", elaps); 366115cd2caSopenharmony_ci ASSERT_LE(elaps, TIME_USEC_CALL_LOG_INSERT); 367115cd2caSopenharmony_ci EXPECT_EQ(batchInsertCode, 0); 368115cd2caSopenharmony_ci} 369115cd2caSopenharmony_ci 370115cd2caSopenharmony_ci/* 371115cd2caSopenharmony_ci * @tc.number calllog_update_performance_test_200 372115cd2caSopenharmony_ci * @tc.name calllog calllog performance testing update 10000 373115cd2caSopenharmony_ci * @tc.desc update 10000 374115cd2caSopenharmony_ci * @tc.level Level1 375115cd2caSopenharmony_ci * @tc.size MediumTest 376115cd2caSopenharmony_ci * @tc.type Function 377115cd2caSopenharmony_ci */ 378115cd2caSopenharmony_ciHWTEST_F(PerformanceTest, calllog_update_performance_test_200, testing::ext::TestSize.Level1) 379115cd2caSopenharmony_ci{ 380115cd2caSopenharmony_ci HILOG_INFO("--- calllog_update_performance_test_200 is starting! ---"); 381115cd2caSopenharmony_ci OHOS::Uri uriCalllog(CallLogUri::CALL_LOG); 382115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket updateValues; 383115cd2caSopenharmony_ci updateValues.Put("answer_state", 1); 384115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 385115cd2caSopenharmony_ci predicates.GreaterThan("id", "0"); 386115cd2caSopenharmony_ci int64_t startTime, endTime; 387115cd2caSopenharmony_ci int elaps; 388115cd2caSopenharmony_ci startTime = GetCurrentTime(); 389115cd2caSopenharmony_ci int updateCode = calllogAbility.Update(uriCalllog, predicates, updateValues); 390115cd2caSopenharmony_ci endTime = GetCurrentTime(); 391115cd2caSopenharmony_ci elaps = CalcTime(startTime, endTime); 392115cd2caSopenharmony_ci ASSERT_LE(elaps, TIME_USEC_CALL_LOG_UPDATE); 393115cd2caSopenharmony_ci HILOG_INFO("calllog_update_performance_test_200 : time is %{public}d", elaps); 394115cd2caSopenharmony_ci EXPECT_EQ(updateCode, 0); 395115cd2caSopenharmony_ci} 396115cd2caSopenharmony_ci 397115cd2caSopenharmony_ci/* 398115cd2caSopenharmony_ci * @tc.number calllog_query_performance_test_300 399115cd2caSopenharmony_ci * @tc.name calllog calllog performance testing query 10000 400115cd2caSopenharmony_ci * @tc.desc query 10000 401115cd2caSopenharmony_ci * @tc.level Level1 402115cd2caSopenharmony_ci * @tc.size MediumTest 403115cd2caSopenharmony_ci * @tc.type Function 404115cd2caSopenharmony_ci */ 405115cd2caSopenharmony_ciHWTEST_F(PerformanceTest, calllog_query_performance_test_300, testing::ext::TestSize.Level1) 406115cd2caSopenharmony_ci{ 407115cd2caSopenharmony_ci HILOG_INFO("--- calllog_query_performance_test_300 is starting! ---"); 408115cd2caSopenharmony_ci OHOS::Uri uriCalllog(CallLogUri::CALL_LOG); 409115cd2caSopenharmony_ci std::vector<std::string> columns; 410115cd2caSopenharmony_ci columns.push_back("id"); 411115cd2caSopenharmony_ci columns.push_back("phone_number"); 412115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 413115cd2caSopenharmony_ci predicates.GreaterThan("id", "0"); 414115cd2caSopenharmony_ci int64_t startTime, endTime; 415115cd2caSopenharmony_ci int elaps; 416115cd2caSopenharmony_ci startTime = GetCurrentTime(); 417115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = 418115cd2caSopenharmony_ci calllogAbility.Query(uriCalllog, predicates, columns); 419115cd2caSopenharmony_ci int rowCount = 0; 420115cd2caSopenharmony_ci resultSet->GetRowCount(rowCount); 421115cd2caSopenharmony_ci EXPECT_GT(rowCount, 9999); 422115cd2caSopenharmony_ci resultSet->Close(); 423115cd2caSopenharmony_ci endTime = GetCurrentTime(); 424115cd2caSopenharmony_ci elaps = CalcTime(startTime, endTime); 425115cd2caSopenharmony_ci HILOG_INFO("calllog_query_performance_test_300 : time is %{public}d", elaps); 426115cd2caSopenharmony_ci ASSERT_LE(elaps, TIME_USEC_CALL_LOG_QUERY); 427115cd2caSopenharmony_ci} 428115cd2caSopenharmony_ci 429115cd2caSopenharmony_ci/* 430115cd2caSopenharmony_ci * @tc.number calllog_delete_performance_test_400 431115cd2caSopenharmony_ci * @tc.name calllog calllog performance testing delete 10000 432115cd2caSopenharmony_ci * @tc.desc delete 10000 433115cd2caSopenharmony_ci * @tc.level Level1 434115cd2caSopenharmony_ci * @tc.size MediumTest 435115cd2caSopenharmony_ci * @tc.type Function 436115cd2caSopenharmony_ci */ 437115cd2caSopenharmony_ciHWTEST_F(PerformanceTest, calllog_delete_performance_test_400, testing::ext::TestSize.Level1) 438115cd2caSopenharmony_ci{ 439115cd2caSopenharmony_ci HILOG_INFO("--- calllog_delete_performance_test_400 is starting! ---"); 440115cd2caSopenharmony_ci OHOS::Uri uriCalllog(CallLogUri::CALL_LOG); 441115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 442115cd2caSopenharmony_ci predicates.GreaterThan("id", "0"); 443115cd2caSopenharmony_ci int64_t startTime, endTime; 444115cd2caSopenharmony_ci int elaps; 445115cd2caSopenharmony_ci startTime = GetCurrentTime(); 446115cd2caSopenharmony_ci int deleteCode = calllogAbility.Delete(uriCalllog, predicates); 447115cd2caSopenharmony_ci endTime = GetCurrentTime(); 448115cd2caSopenharmony_ci elaps = CalcTime(startTime, endTime); 449115cd2caSopenharmony_ci HILOG_INFO("calllog_delete_performance_test_400 : time is %{public}d", elaps); 450115cd2caSopenharmony_ci ASSERT_LE(elaps, TIME_USEC_CALL_LOG_DELETED); 451115cd2caSopenharmony_ci EXPECT_EQ(deleteCode, 0); 452115cd2caSopenharmony_ci} 453115cd2caSopenharmony_ci 454115cd2caSopenharmony_ci/* 455115cd2caSopenharmony_ci * @tc.number voicemail_insert_performance_test_500 456115cd2caSopenharmony_ci * @tc.name voicemail performance testing delete 10000 457115cd2caSopenharmony_ci * @tc.desc delete 10000 458115cd2caSopenharmony_ci * @tc.level Level1 459115cd2caSopenharmony_ci * @tc.size MediumTest 460115cd2caSopenharmony_ci * @tc.type Function 461115cd2caSopenharmony_ci */ 462115cd2caSopenharmony_ciHWTEST_F(PerformanceTest, voicemail_insert_performance_test_500, testing::ext::TestSize.Level1) 463115cd2caSopenharmony_ci{ 464115cd2caSopenharmony_ci OHOS::Uri uriVoiceMail(VoicemailUri::VOICEMAIL); 465115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicatesOne; 466115cd2caSopenharmony_ci predicatesOne.GreaterThan("id", "0"); 467115cd2caSopenharmony_ci HILOG_INFO("voicemail_insert_performance_test_500 deleted start! "); 468115cd2caSopenharmony_ci voicemailAbility.Delete(uriVoiceMail, predicatesOne); 469115cd2caSopenharmony_ci HILOG_INFO("--- voicemail_insert_performance_test_500 is starting! ---"); 470115cd2caSopenharmony_ci std::vector<OHOS::DataShare::DataShareValuesBucket> values; 471115cd2caSopenharmony_ci for (int i = 0; i < 10000; i++) { 472115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket voicemailValues; 473115cd2caSopenharmony_ci voicemailValues.Put("phone_number", std::to_string(i + 1)); 474115cd2caSopenharmony_ci values.push_back(voicemailValues); 475115cd2caSopenharmony_ci } 476115cd2caSopenharmony_ci HILOG_INFO("voicemail_insert_performance_test_500 start! "); 477115cd2caSopenharmony_ci int64_t startTime, endTime; 478115cd2caSopenharmony_ci int elaps; 479115cd2caSopenharmony_ci startTime = GetCurrentTime(); 480115cd2caSopenharmony_ci int batchInsertCode = voicemailAbility.BatchInsert(uriVoiceMail, values); 481115cd2caSopenharmony_ci endTime = GetCurrentTime(); 482115cd2caSopenharmony_ci elaps = CalcTime(startTime, endTime); 483115cd2caSopenharmony_ci HILOG_INFO("voicemail_insert_performance_test_500 : time is %{public}d", elaps); 484115cd2caSopenharmony_ci ASSERT_LE(elaps, TIME_USEC_VOICEMAIL_INSERT); 485115cd2caSopenharmony_ci EXPECT_EQ(batchInsertCode, 0); 486115cd2caSopenharmony_ci} 487115cd2caSopenharmony_ci 488115cd2caSopenharmony_ci/* 489115cd2caSopenharmony_ci * @tc.number voicemail_update_performance_test_600 490115cd2caSopenharmony_ci * @tc.name voicemail performance testing update 10000 491115cd2caSopenharmony_ci * @tc.desc update 10000 492115cd2caSopenharmony_ci * @tc.level Level1 493115cd2caSopenharmony_ci * @tc.size MediumTest 494115cd2caSopenharmony_ci * @tc.type Function 495115cd2caSopenharmony_ci */ 496115cd2caSopenharmony_ciHWTEST_F(PerformanceTest, voicemail_update_performance_test_600, testing::ext::TestSize.Level1) 497115cd2caSopenharmony_ci{ 498115cd2caSopenharmony_ci HILOG_INFO("--- voicemail_update_performance_test_600 is starting! ---"); 499115cd2caSopenharmony_ci OHOS::Uri uriVoiceMail(VoicemailUri::VOICEMAIL); 500115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket updateValues; 501115cd2caSopenharmony_ci updateValues.Put("origin_type", "origin"); 502115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 503115cd2caSopenharmony_ci predicates.GreaterThan("id", "0"); 504115cd2caSopenharmony_ci int64_t startTime, endTime; 505115cd2caSopenharmony_ci int elaps; 506115cd2caSopenharmony_ci startTime = GetCurrentTime(); 507115cd2caSopenharmony_ci int updateCode = voicemailAbility.Update(uriVoiceMail, predicates, updateValues); 508115cd2caSopenharmony_ci endTime = GetCurrentTime(); 509115cd2caSopenharmony_ci elaps = CalcTime(startTime, endTime); 510115cd2caSopenharmony_ci HILOG_INFO("voicemail_update_performance_test_600 : time is %{public}d", elaps); 511115cd2caSopenharmony_ci ASSERT_LE(elaps, TIME_USEC_VOICEMAIL_UPDATE); 512115cd2caSopenharmony_ci EXPECT_EQ(updateCode, 0); 513115cd2caSopenharmony_ci} 514115cd2caSopenharmony_ci 515115cd2caSopenharmony_ci/* 516115cd2caSopenharmony_ci * @tc.number voicemail_query_performance_test_700 517115cd2caSopenharmony_ci * @tc.name voicemail performance testing query 10000 518115cd2caSopenharmony_ci * @tc.desc query 10000 519115cd2caSopenharmony_ci * @tc.level Level1 520115cd2caSopenharmony_ci * @tc.size MediumTest 521115cd2caSopenharmony_ci * @tc.type Function 522115cd2caSopenharmony_ci */ 523115cd2caSopenharmony_ciHWTEST_F(PerformanceTest, voicemail_query_performance_test_700, testing::ext::TestSize.Level1) 524115cd2caSopenharmony_ci{ 525115cd2caSopenharmony_ci HILOG_INFO("--- voicemail_query_performance_test_700 is starting! ---"); 526115cd2caSopenharmony_ci std::string tag("voicemail_query_performance_test_700"); 527115cd2caSopenharmony_ci OHOS::Uri uriVoiceMail(VoicemailUri::VOICEMAIL); 528115cd2caSopenharmony_ci std::vector<std::string> columns; 529115cd2caSopenharmony_ci columns.push_back("id"); 530115cd2caSopenharmony_ci columns.push_back("phone_number"); 531115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 532115cd2caSopenharmony_ci predicates.GreaterThan("id", "0"); 533115cd2caSopenharmony_ci HILOG_INFO("voicemail_query_performance_test_700 start! "); 534115cd2caSopenharmony_ci int64_t startTime, endTime; 535115cd2caSopenharmony_ci int elaps; 536115cd2caSopenharmony_ci startTime = GetCurrentTime(); 537115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = 538115cd2caSopenharmony_ci voicemailAbility.Query(uriVoiceMail, predicates, columns); 539115cd2caSopenharmony_ci int rowCount = 0; 540115cd2caSopenharmony_ci resultSet->GetRowCount(rowCount); 541115cd2caSopenharmony_ci EXPECT_GT(rowCount, 9999); 542115cd2caSopenharmony_ci endTime = GetCurrentTime(); 543115cd2caSopenharmony_ci elaps = CalcTime(startTime, endTime); 544115cd2caSopenharmony_ci resultSet->Close(); 545115cd2caSopenharmony_ci HILOG_INFO("voicemail_query_performance_test_700 : time is %{public}d", elaps); 546115cd2caSopenharmony_ci ASSERT_LE(elaps, TIME_USEC_VOICEMAIL_QUERY); 547115cd2caSopenharmony_ci} 548115cd2caSopenharmony_ci 549115cd2caSopenharmony_ci/* 550115cd2caSopenharmony_ci * @tc.number voicemail_delete_performance_test_800 551115cd2caSopenharmony_ci * @tc.name voicemail performance testing delete 10000 552115cd2caSopenharmony_ci * @tc.desc delete 10000 553115cd2caSopenharmony_ci * @tc.level Level1 554115cd2caSopenharmony_ci * @tc.size MediumTest 555115cd2caSopenharmony_ci * @tc.type Function 556115cd2caSopenharmony_ci */ 557115cd2caSopenharmony_ciHWTEST_F(PerformanceTest, voicemail_delete_performance_test_800, testing::ext::TestSize.Level1) 558115cd2caSopenharmony_ci{ 559115cd2caSopenharmony_ci HILOG_INFO("--- voicemail_delete_performance_test_800 is starting! ---"); 560115cd2caSopenharmony_ci OHOS::Uri uriVoiceMail(VoicemailUri::VOICEMAIL); 561115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 562115cd2caSopenharmony_ci predicates.GreaterThan("id", "0"); 563115cd2caSopenharmony_ci HILOG_INFO("voicemail_delete_performance_test_800 start! "); 564115cd2caSopenharmony_ci int64_t startTime, endTime; 565115cd2caSopenharmony_ci int elaps; 566115cd2caSopenharmony_ci startTime = GetCurrentTime(); 567115cd2caSopenharmony_ci int deleteCode = voicemailAbility.Delete(uriVoiceMail, predicates); 568115cd2caSopenharmony_ci endTime = GetCurrentTime(); 569115cd2caSopenharmony_ci elaps = CalcTime(startTime, endTime); 570115cd2caSopenharmony_ci HILOG_INFO("voicemail_delete_performance_test_800 : time is %{public}d", elaps); 571115cd2caSopenharmony_ci ASSERT_LE(elaps, TIME_USEC_VOICEMAIL_DELETED); 572115cd2caSopenharmony_ci EXPECT_EQ(deleteCode, 0); 573115cd2caSopenharmony_ci} 574115cd2caSopenharmony_ci 575115cd2caSopenharmony_ciHWTEST_F(PerformanceTest, PerformanceTestDeleted, testing::ext::TestSize.Level1) 576115cd2caSopenharmony_ci{ 577115cd2caSopenharmony_ci DeleteContact(); 578115cd2caSopenharmony_ci} 579115cd2caSopenharmony_ci} // namespace Test 580115cd2caSopenharmony_ci} // namespace Contacts