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