1/* 2 * Copyright (C) 2021 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15#include <numeric> 16#include <iostream> 17#include <gtest/gtest.h> 18#include <vector> 19#include <map> 20#include <sstream> 21#include <stdlib.h> 22#include <stdio.h> 23#include <time.h> 24#include <ctime> 25#include "hiappevent.h" 26#include "hiappevent_config.h" 27#include "hilog/log.h" 28#include "file_utils.h" 29#include <securec.h> 30 31#define BUFF_SIZE 100 32using namespace std; 33using namespace testing; 34using namespace testing::ext; 35using namespace OHOS::HiviewDFX; 36 37namespace{ 38 const char* TEST_DOMAIN_NAME = "test_domain"; 39 const char* TEST_EVENT_NAME = "test_event"; 40 string g_reDiRectTimeout = "5"; 41 string logPath = "/data/test/hiappevent/"; 42 string delelogPath = "/data/test/hiappevent/*"; 43} 44 45class HiAppEventCPPTest : public testing::Test{ 46public: 47 void TearDown(); 48private: 49}; 50void HiAppEventCPPTest::TearDown() 51{ 52 std::cout << "TearDown" << std::endl; 53 std::vector<std::string> cmdret; 54 string cmd = "rm -f " + delelogPath; 55 ExecCmdWithRet(cmd, cmdret); 56} 57 58/** 59* @tc.name Test of the HiAppEvent Native Write Interface in which the keyvalue 60* is of the boolean type and the bool value is false. 61* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_0100 62* @author f00601390 63* @tc.desc The keyvalue is of the boolean type and the bool value is false. 64*/ 65HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_0100, Function|MediumTest|Level3){ 66 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_0100 start" << endl; 67 bool result = false; 68 bool boolean = false; 69 string getlogFile; 70 string path; 71 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 72 ParamList list = OH_HiAppEvent_CreateParamList(); 73 OH_HiAppEvent_AddBoolParam(list, "bool_key", boolean); 74 EventType eventType = EventType::FAULT; 75 OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 76 sleep(1); //等待1s 77 std::vector<std::string> file; 78 file = getfileinpath(logPath); 79 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 80 path = logPath + getlogFile; 81 string fileinfo = ""; 82 fileinfo = ReadFile(path); 83 std::vector<std::string> para = {"test_event", "\"type_\":1", "\"bool_key\":false"}; 84 if (fileinfo != "") { 85 result = CheckInfo(para, fileinfo); 86 } else { 87 std::cout << "DFX_DFT_HiviewKit_HiAppEvent_Native_0100 file error" << std::endl; 88 } 89 OH_HiAppEvent_DestroyParamList(list); 90 ASSERT_TRUE(result); 91 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_0100 end" << endl; 92} 93 94/** 95* @tc.name Test of the HiAppEvent Native Write Interface in which the keyvalue 96* is of the boolean type and the bool value is true. 97* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_0200 98* @author f00601390 99* @tc.desc The keyvalue is of the boolean type and the bool value is false. 100*/ 101HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_0200, Function|MediumTest|Level3){ 102 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_0200 start" << endl; 103 bool result = false; 104 bool boolean = true; 105 string getlogFile; 106 string path; 107 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 108 ParamList list = OH_HiAppEvent_CreateParamList(); 109 OH_HiAppEvent_AddBoolParam(list, "bool_key", boolean); 110 EventType eventType = EventType::FAULT; 111 OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 112 sleep(1); //等待1s 113 std::vector<std::string> file; 114 file = getfileinpath(logPath); 115 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 116 path = logPath + getlogFile; 117 string fileinfo = ""; 118 fileinfo = ReadFile(path); 119 std::vector<std::string> para = {"test_event", "\"type_\":1", "\"bool_key\":true"}; 120 if (fileinfo != "") { 121 result = CheckInfo(para, fileinfo); 122 } else { 123 std::cout << "DFX_DFT_HiviewKit_HiAppEvent_Native_0200 file error" << std::endl; 124 } 125 OH_HiAppEvent_DestroyParamList(list); 126 ASSERT_TRUE(result); 127 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_0200 end" << endl; 128} 129 130/** 131* @tc.name HiAppEvent Native Write Interface Test, Reporting the Keyvalue of the Boolean List Type. 132* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_0300 133* @author f00601390 134* @tc.desc The keyvalue is reported as a boolean list. 135*/ 136HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_0300, Function|MediumTest|Level3){ 137 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_0300 start" << endl; 138 bool result = false; 139 bool booleans[] = {true, true}; 140 string getlogFile; 141 string path; 142 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 143 ParamList list = OH_HiAppEvent_CreateParamList(); 144 OH_HiAppEvent_AddBoolArrayParam(list, "bool_arr_key", booleans, sizeof(booleans) / sizeof(booleans[0])); 145 EventType eventType = EventType::FAULT; 146 OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 147 sleep(1); //等待1s 148 std::vector<std::string> file; 149 file = getfileinpath(logPath); 150 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 151 path = logPath + getlogFile; 152 string fileinfo = ""; 153 fileinfo = ReadFile(path); 154 std::vector<std::string> para = {"test_event", "\"type_\":1", "\"bool_arr_key\":[true,true]"}; 155 if (fileinfo != "") { 156 result = CheckInfo(para, fileinfo); 157 } else { 158 std::cout << "DFX_DFT_HiviewKit_HiAppEvent_Native_0300 file error" << std::endl; 159 } 160 OH_HiAppEvent_DestroyParamList(list); 161 ASSERT_TRUE(result); 162 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_0300 end" << endl; 163} 164 165/** 166* @tc.name HiAppEvent Native Write Interface Test, Reporting the Keyvalue of the Boolean List Type. 167* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_0400 168* @author f00601390 169* @tc.desc The keyvalue is reported as a boolean list. 170*/ 171HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_0400, Function|MediumTest|Level3){ 172 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_0400 start" << endl; 173 bool result = false; 174 char str[] = "hello"; 175 string getlogFile; 176 string path; 177 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 178 ParamList list = OH_HiAppEvent_CreateParamList(); 179 OH_HiAppEvent_AddStringParam(list, "str_key", str); 180 EventType eventType = EventType::BEHAVIOR; 181 OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 182 sleep(1); //等待1s 183 std::vector<std::string> file; 184 file = getfileinpath(logPath); 185 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 186 path = logPath + getlogFile; 187 string fileinfo = ""; 188 fileinfo = ReadFile(path); 189 std::vector<std::string> para = {"test_event", "\"type_\":4", "\"str_key\":\"hello\""}; 190 if (fileinfo != "") { 191 result = CheckInfo(para, fileinfo); 192 } else { 193 std::cout << "DFX_DFT_HiviewKit_HiAppEvent_Native_0400 file error" << std::endl; 194 } 195 OH_HiAppEvent_DestroyParamList(list); 196 ASSERT_TRUE(result); 197 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_0400 end" << endl; 198} 199 200/** 201* @tc.name HiAppEvent Native Write Interface Test, Reporting the Keyvalue of the Boolean List Type. 202* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_0500 203* @author f00601390 204* @tc.desc The keyvalue is reported as a boolean list. 205*/ 206HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_0500, Function|MediumTest|Level3){ 207 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_0500 start" << endl; 208 bool result = false; 209 char str1[] = "hello"; 210 char str2[] = "world"; 211 char* strs[] = {str1, str2}; 212 string getlogFile; 213 string path; 214 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 215 ParamList list = OH_HiAppEvent_CreateParamList(); 216 OH_HiAppEvent_AddStringArrayParam(list, "str_arr_key", strs, sizeof(strs) / sizeof(strs[0])); 217 EventType eventType = EventType::BEHAVIOR; 218 OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 219 sleep(1); //等待1s 220 std::vector<std::string> file; 221 file = getfileinpath(logPath); 222 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 223 path = logPath + getlogFile; 224 string fileinfo = ""; 225 fileinfo = ReadFile(path); 226 std::vector<std::string> para = {"test_event", "\"type_\":4", "\"str_arr_key\":[\"hello\",\"world\"]"}; 227 if (fileinfo != "") { 228 result = CheckInfo(para, fileinfo); 229 } else { 230 std::cout << "DFX_DFT_HiviewKit_HiAppEvent_Native_0500 file error" << std::endl; 231 } 232 OH_HiAppEvent_DestroyParamList(list); 233 ASSERT_TRUE(result); 234 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_0500 end" << endl; 235} 236 237/** 238* @tc.name Testing the Native Write Interface of the HiAppEvent, Reporting the Keyvalue of the Double Type. 239* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_0800 240* @author f00601390 241* @tc.desc The keyvalue type is double. 242*/ 243HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_0800, Function|MediumTest|Level3){ 244 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_0800 start" << endl; 245 bool result = false; 246 double num = 30949.374; 247 string getlogFile; 248 string path; 249 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 250 ParamList list = OH_HiAppEvent_CreateParamList(); 251 OH_HiAppEvent_AddDoubleParam(list, "double_key", num); 252 EventType eventType = EventType::FAULT; 253 OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 254 sleep(1); //等待1s 255 std::vector<std::string> file; 256 file = getfileinpath(logPath); 257 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 258 path = logPath + getlogFile; 259 string fileinfo = ""; 260 fileinfo = ReadFile(path); 261 std::vector<std::string> para = {"test_event", "\"type_\":1", "\"double_key\":30949.374"}; 262 if (fileinfo != "") { 263 result = CheckInfo(para, fileinfo); 264 } else { 265 std::cout << "DFX_DFT_HiviewKit_HiAppEvent_Native_0800 file error" << std::endl; 266 } 267 OH_HiAppEvent_DestroyParamList(list); 268 ASSERT_TRUE(result); 269 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_0800 end" << endl; 270} 271 272/** 273* @tc.name HiAppEvent Native Write Interface Test, Reporting the Keyvalue of a Double List. 274* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_0900 275* @author f00601390 276* @tc.desc The keyvalue is reported as a double list. 277*/ 278HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_0900, Function|MediumTest|Level3){ 279 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_0900 start" << endl; 280 bool result = false; 281 double nums[] = {123.22, 30949.374, 131312.46464}; 282 string getlogFile; 283 string path; 284 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 285 ParamList list = OH_HiAppEvent_CreateParamList(); 286 OH_HiAppEvent_AddDoubleArrayParam(list, "double_arr_key", nums, sizeof(nums) / sizeof(nums[0])); 287 EventType eventType = EventType::STATISTIC; 288 OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 289 sleep(1); //等待1s 290 std::vector<std::string> file; 291 file = getfileinpath(logPath); 292 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 293 path = logPath + getlogFile; 294 string fileinfo = ""; 295 fileinfo = ReadFile(path); 296 std::vector<std::string> para = {"test_event", "\"type_\":2", "\"double_arr_key\":[123.22,30949.374,131312.46464]"}; 297 if (fileinfo != "") { 298 result = CheckInfo(para, fileinfo); 299 } else { 300 std::cout << "DFX_DFT_HiviewKit_HiAppEvent_Native_0900 file error" << std::endl; 301 } 302 OH_HiAppEvent_DestroyParamList(list); 303 ASSERT_TRUE(result); 304 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_0900 end" << endl; 305} 306 307/** 308* @tc.name HiAppEvent Native Write Interface Test, Reporting the KeyValue of the Floating Type. 309* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_1000 310* @author f00601390 311* @tc.desc The keyvalue type is float. 312*/ 313HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_1000, Function|MediumTest|Level3){ 314 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_1000 start" << endl; 315 bool result = false; 316 float num = 234.5f; 317 string getlogFile; 318 string path; 319 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 320 ParamList list = OH_HiAppEvent_CreateParamList(); 321 OH_HiAppEvent_AddFloatParam(list, "float_key", num); 322 EventType eventType = EventType::STATISTIC; 323 OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 324 sleep(1); //等待1s 325 std::vector<std::string> file; 326 file = getfileinpath(logPath); 327 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 328 path = logPath + getlogFile; 329 string fileinfo = ""; 330 fileinfo = ReadFile(path); 331 std::vector<std::string> para = {"test_event", "\"type_\":2", "\"float_key\":234.5"}; 332 if (fileinfo != "") { 333 result = CheckInfo(para, fileinfo); 334 } else { 335 std::cout << "DFX_DFT_HiviewKit_HiAppEvent_Native_1000 file error" << std::endl; 336 } 337 OH_HiAppEvent_DestroyParamList(list); 338 ASSERT_TRUE(result); 339 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_1000 end" << endl; 340} 341 342/** 343* @tc.name HiAppEvent Native Write Interface Test, Reporting the Keyvalue of a Floating List. 344* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_1100 345* @author f00601390 346* @tc.desc The keyvalue is reported as a float list. 347*/ 348HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_1100, Function|MediumTest|Level3){ 349 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_1100 start" << endl; 350 bool result = false; 351 float nums[] = {123.22f, 234.5f, 131312.46464f}; 352 string getlogFile; 353 string path; 354 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 355 ParamList list = OH_HiAppEvent_CreateParamList(); 356 OH_HiAppEvent_AddFloatArrayParam(list, "float_arr_key", nums, sizeof(nums) / sizeof(nums[0])); 357 EventType eventType = EventType::STATISTIC; 358 OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 359 sleep(1); //等待1s 360 std::vector<std::string> file; 361 file = getfileinpath(logPath); 362 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 363 path = logPath + getlogFile; 364 string fileinfo = ""; 365 fileinfo = ReadFile(path); 366 std::vector<std::string> para = {"test_event", "\"type_\":2", "\"float_arr_key\":[123.22", "234.5", "131312.46"}; 367 if (fileinfo != "") { 368 result = CheckInfo(para, fileinfo); 369 } else { 370 std::cout << "DFX_DFT_HiviewKit_HiAppEvent_Native_1100 file error" << std::endl; 371 } 372 OH_HiAppEvent_DestroyParamList(list); 373 ASSERT_TRUE(result); 374 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_1100 end" << endl; 375} 376 377/** 378* @tc.name HiAppEvent Native Write Interface Test, Reported When the Keyvalue Is of the Int Type. 379* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_1200 380* @author f00601390 381* @tc.desc The keyvalue is of the int type. 382*/ 383HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_1200, Function|MediumTest|Level3){ 384 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_1200 start" << endl; 385 bool result = false; 386 int num = 1; 387 string getlogFile; 388 string path; 389 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 390 ParamList list = OH_HiAppEvent_CreateParamList(); 391 OH_HiAppEvent_AddInt8Param(list, "int8_key", num); 392 EventType eventType = EventType::SECURITY; 393 OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 394 sleep(1); //等待1s 395 std::vector<std::string> file; 396 file = getfileinpath(logPath); 397 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 398 path = logPath + getlogFile; 399 string fileinfo = ""; 400 fileinfo = ReadFile(path); 401 std::vector<std::string> para = {"test_event", "\"type_\":3", "\"int8_key\":1"}; 402 if (fileinfo != "") { 403 result = CheckInfo(para, fileinfo); 404 } else { 405 std::cout << "DFX_DFT_HiviewKit_HiAppEvent_Native_1200 file error" << std::endl; 406 } 407 OH_HiAppEvent_DestroyParamList(list); 408 ASSERT_TRUE(result); 409 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_1200 end" << endl; 410} 411 412/** 413* @tc.name HiAppEvent Native Write Interface Test, Reporting of the int List Type of Keyvalue. 414* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_1300 415* @author f00601390 416* @tc.desc The keyvalue is reported as an int list. 417*/ 418HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_1300, Function|MediumTest|Level3){ 419 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_1300 start" << endl; 420 bool result = false; 421 int8_t nums[] = {1, 10, 100}; 422 string getlogFile; 423 string path; 424 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 425 ParamList list = OH_HiAppEvent_CreateParamList(); 426 OH_HiAppEvent_AddInt8ArrayParam(list, "int8_arr_key", nums, sizeof(nums) / sizeof(nums[0])); 427 EventType eventType = EventType::SECURITY; 428 OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 429 sleep(1); //等待1s 430 std::vector<std::string> file; 431 file = getfileinpath(logPath); 432 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 433 path = logPath + getlogFile; 434 string fileinfo = ""; 435 fileinfo = ReadFile(path); 436 std::vector<std::string> para = {"test_event", "\"type_\":3", "\"int8_arr_key\":[1,10,100]"}; 437 if (fileinfo != "") { 438 result = CheckInfo(para, fileinfo); 439 } else { 440 std::cout << "DFX_DFT_HiviewKit_HiAppEvent_Native_1300 file error" << std::endl; 441 } 442 OH_HiAppEvent_DestroyParamList(list); 443 ASSERT_TRUE(result); 444 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_1300 end" << endl; 445} 446 447/** 448* @tc.name HiAppEvent Native Write Interface Test Reported When the Keyvalue Is of the Long Type. 449* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_1400 450* @author f00601390 451* @tc.desc The keyvalue type is long. 452*/ 453HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_1400, Function|MediumTest|Level3){ 454 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_1400 start" << endl; 455 bool result = false; 456 int16_t num = 1; 457 string getlogFile; 458 string path; 459 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 460 ParamList list = OH_HiAppEvent_CreateParamList(); 461 OH_HiAppEvent_AddInt16Param(list, "int16_key", num); 462 EventType eventType = EventType::SECURITY; 463 OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 464 sleep(1); //等待1s 465 std::vector<std::string> file; 466 file = getfileinpath(logPath); 467 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 468 path = logPath + getlogFile; 469 string fileinfo = ""; 470 fileinfo = ReadFile(path); 471 std::vector<std::string> para = {"test_event", "\"type_\":3", "\"int16_key\":1"}; 472 if (fileinfo != "") { 473 result = CheckInfo(para, fileinfo); 474 } else { 475 std::cout << "DFX_DFT_HiviewKit_HiAppEvent_Native_1400 file error" << std::endl; 476 } 477 OH_HiAppEvent_DestroyParamList(list); 478 ASSERT_TRUE(result); 479 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_1400 end" << endl; 480} 481 482/** 483* @tc.name HiAppEvent Native Write Interface Test Reported When the Keyvalue Is of the Long Type. 484* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_1500 485* @author f00601390 486* @tc.desc The keyvalue type is long. 487*/ 488HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_1500, Function|MediumTest|Level3){ 489 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_1500 start" << endl; 490 bool result = false; 491 int16_t nums[] = {1, 1000, 5000}; 492 string getlogFile; 493 string path; 494 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 495 ParamList list = OH_HiAppEvent_CreateParamList(); 496 OH_HiAppEvent_AddInt16ArrayParam(list, "int16_arr_key", nums, sizeof(nums) / sizeof(nums[0])); 497 EventType eventType = EventType::SECURITY; 498 OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 499 sleep(1); //等待1s 500 std::vector<std::string> file; 501 file = getfileinpath(logPath); 502 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 503 path = logPath + getlogFile; 504 string fileinfo = ""; 505 fileinfo = ReadFile(path); 506 std::vector<std::string> para = {"test_event", "\"type_\":3", "\"int16_arr_key\":[1,1000,5000]"}; 507 if (fileinfo != "") { 508 result = CheckInfo(para, fileinfo); 509 } else { 510 std::cout << "DFX_DFT_HiviewKit_HiAppEvent_Native_1500 file error" << std::endl; 511 } 512 OH_HiAppEvent_DestroyParamList(list); 513 ASSERT_TRUE(result); 514 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_1500 end" << endl; 515} 516 517/** 518* @tc.name HiAppEvent Native Write Interface Test Reported When the Keyvalue Is of the Long Type. 519* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_1600 520* @author f00601390 521* @tc.desc The keyvalue type is long. 522*/ 523HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_1600, Function|MediumTest|Level3){ 524 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_1600 start" << endl; 525 bool result = false; 526 int32_t num = 1; 527 string getlogFile; 528 string path; 529 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 530 ParamList list = OH_HiAppEvent_CreateParamList(); 531 OH_HiAppEvent_AddInt32Param(list, "int32_key", num); 532 EventType eventType = EventType::SECURITY; 533 OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 534 sleep(1); //等待1s 535 std::vector<std::string> file; 536 file = getfileinpath(logPath); 537 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 538 path = logPath + getlogFile; 539 string fileinfo = ""; 540 fileinfo = ReadFile(path); 541 std::vector<std::string> para = {"test_event", "\"type_\":3", "\"int32_key\":1"}; 542 if (fileinfo != "") { 543 result = CheckInfo(para, fileinfo); 544 } else { 545 std::cout << "DFX_DFT_HiviewKit_HiAppEvent_Native_1600 file error" << std::endl; 546 } 547 OH_HiAppEvent_DestroyParamList(list); 548 ASSERT_TRUE(result); 549 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_1600 end" << endl; 550} 551 552/** 553* @tc.name HiAppEvent Native Write Interface Test Reported When the Keyvalue Is of the Long Type. 554* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_1700 555* @author f00601390 556* @tc.desc The keyvalue type is long. 557*/ 558HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_1700, Function|MediumTest|Level3){ 559 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_1700 start" << endl; 560 bool result = false; 561 int32_t nums[] = {1, 100000, 500000}; 562 string getlogFile; 563 string path; 564 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 565 ParamList list = OH_HiAppEvent_CreateParamList(); 566 OH_HiAppEvent_AddInt32ArrayParam(list, "int32_arr_key", nums, sizeof(nums) / sizeof(nums[0])); 567 EventType eventType = EventType::SECURITY; 568 OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 569 sleep(1); //等待1s 570 std::vector<std::string> file; 571 file = getfileinpath(logPath); 572 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 573 path = logPath + getlogFile; 574 string fileinfo = ""; 575 fileinfo = ReadFile(path); 576 std::vector<std::string> para = {"test_event", "\"type_\":3", "\"int32_arr_key\":[1,100000,500000]"}; 577 if (fileinfo != "") { 578 result = CheckInfo(para, fileinfo); 579 } else { 580 std::cout << "DFX_DFT_HiviewKit_HiAppEvent_Native_1700 file error" << std::endl; 581 } 582 OH_HiAppEvent_DestroyParamList(list); 583 ASSERT_TRUE(result); 584 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_1700 end" << endl; 585} 586 587/** 588* @tc.name HiAppEvent Native Write Interface Test Reported When the Keyvalue Is of the Long Type. 589* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_1800 590* @author f00601390 591* @tc.desc The keyvalue type is long. 592*/ 593HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_1800, Function|MediumTest|Level3){ 594 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_1800 start" << endl; 595 bool result = false; 596 int64_t num = 1; 597 string getlogFile; 598 string path; 599 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 600 ParamList list = OH_HiAppEvent_CreateParamList(); 601 OH_HiAppEvent_AddInt64Param(list, "int64_key", num); 602 EventType eventType = EventType::SECURITY; 603 OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 604 sleep(1); //等待1s 605 std::vector<std::string> file; 606 file = getfileinpath(logPath); 607 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 608 path = logPath + getlogFile; 609 string fileinfo = ""; 610 fileinfo = ReadFile(path); 611 std::vector<std::string> para = {"test_event", "\"type_\":3", "\"int64_key\":1"}; 612 if (fileinfo != "") { 613 result = CheckInfo(para, fileinfo); 614 } else { 615 std::cout << "DFX_DFT_HiviewKit_HiAppEvent_Native_1800 file error" << std::endl; 616 } 617 OH_HiAppEvent_DestroyParamList(list); 618 ASSERT_TRUE(result); 619 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_1800 end" << endl; 620} 621 622/** 623* @tc.name HiAppEvent Native Write Interface Test Reported When the Keyvalue Is of the Long Type. 624* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_1900 625* @author f00601390 626* @tc.desc The keyvalue type is long. 627*/ 628HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_1900, Function|MediumTest|Level3){ 629 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_1900 start" << endl; 630 bool result = false; 631 int64_t nums[] = {1, 10000000, 50000000}; 632 string getlogFile; 633 string path; 634 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 635 ParamList list = OH_HiAppEvent_CreateParamList(); 636 OH_HiAppEvent_AddInt64ArrayParam(list, "int64_arr_key", nums, sizeof(nums) / sizeof(nums[0])); 637 EventType eventType = EventType::SECURITY; 638 OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 639 sleep(1); //等待1s 640 std::vector<std::string> file; 641 file = getfileinpath(logPath); 642 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 643 path = logPath + getlogFile; 644 string fileinfo = ""; 645 fileinfo = ReadFile(path); 646 std::vector<std::string> para = {"test_event", "\"type_\":3", "\"int64_arr_key\":[1,10000000,50000000]"}; 647 if (fileinfo != "") { 648 result = CheckInfo(para, fileinfo); 649 } else { 650 std::cout << "DFX_DFT_HiviewKit_HiAppEvent_Native_1900 file error" << std::endl; 651 } 652 OH_HiAppEvent_DestroyParamList(list); 653 ASSERT_TRUE(result); 654 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_1900 end" << endl; 655} 656 657/** 658* @tc.name HiAppEvent Native Write Interface Test, Reporting the Keyvalue of the string List Type. 659* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_2100 660* @author f00601390 661* @tc.desc The keyvalue is reported as a string list, 100 list parameters . 662*/ 663HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_2100, Function|MediumTest|Level3){ 664 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_2100 start" << endl; 665 bool result = false; 666 char* strs[100]; 667 int num = 32; 668 for(int i=0;i<100;i++){ 669 strs[i] = new char[32]; 670 sprintf_s(strs[i], num,"hello_world_%d",i); 671 std::cout << sizeof(strs[i]) << std::endl; 672 std::cout << strs[i] << std::endl; 673 } 674 string getlogFile; 675 string path; 676 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 677 ParamList list = OH_HiAppEvent_CreateParamList(); 678 OH_HiAppEvent_AddStringArrayParam(list, "str_arr_key", strs, sizeof(strs) / sizeof(strs[0])); 679 EventType eventType = EventType::BEHAVIOR; 680 OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 681 sleep(1); //等待1s 682 std::vector<std::string> file; 683 file = getfileinpath(logPath); 684 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 685 path = logPath + getlogFile; 686 string fileinfo = ""; 687 fileinfo = ReadFile(path); 688 std::vector<std::string> para = {"test_event", "\"type_\":4"}; 689 if (fileinfo != "") { 690 result = CheckInfo(para, fileinfo); 691 } else { 692 std::cout << "DFX_DFT_HiviewKit_HiAppEvent_Native_2100 file error" << std::endl; 693 } 694 OH_HiAppEvent_DestroyParamList(list); 695 ASSERT_TRUE(result); 696 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_2100 end" << endl; 697} 698 699/** 700* @tc.name HiAppEvent Native Write Interface Test, Reporting the Keyvalue of the string Type. 701* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_2200 702* @author f00601390 703* @tc.desc The keyvalue is reported as a string, 8 * 1024 lenth. 704*/ 705HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_2200, Function|MediumTest|Level4){ 706 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_2200 start" << endl; 707 bool result = false; 708 string strs = ""; 709 for(int i=0;i<1024;i++){ 710 strs.append("abcdefgh"); 711 } 712 string getlogFile; 713 string path; 714 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 715 ParamList list = OH_HiAppEvent_CreateParamList(); 716 OH_HiAppEvent_AddStringParam(list, "str_key", strs.c_str()); 717 EventType eventType = EventType::BEHAVIOR; 718 OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 719 sleep(1); //等待1s 720 std::vector<std::string> file; 721 file = getfileinpath(logPath); 722 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 723 path = logPath + getlogFile; 724 string fileinfo = ""; 725 fileinfo = ReadFile(path); 726 std::vector<std::string> para = {"test_event", "\"type_\":4"}; 727 if (fileinfo != "") { 728 result = CheckInfo(para, fileinfo); 729 } else { 730 std::cout << "DFX_DFT_HiviewKit_HiAppEvent_Native_2200 file error" << std::endl; 731 } 732 OH_HiAppEvent_DestroyParamList(list); 733 ASSERT_TRUE(result); 734 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_2200 end" << endl; 735} 736 737/** 738* @tc.name HiAppEvent Native Write Interface Test, Reporting the event name is null. 739* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_2300 740* @author f00601390 741* @tc.desc Reported event name is null. 742*/ 743HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_2300, Function|MediumTest|Level4){ 744 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_2300 start" << endl; 745 char str[] = "hello"; 746 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 747 ParamList list = OH_HiAppEvent_CreateParamList(); 748 OH_HiAppEvent_AddStringParam(list, "str_key", str); 749 EventType eventType = EventType::FAULT; 750 int ret = OH_HiAppEvent_Write(TEST_DOMAIN_NAME, NULL, eventType, list); 751 sleep(1); //等待1s 752 OH_HiAppEvent_DestroyParamList(list); 753 ASSERT_TRUE(ret == -1); 754 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_2300 end" << endl; 755} 756 757/** 758* @tc.name HiAppEvent Native Write Interface Test, Reporting the event name is empty. 759* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_2400 760* @author f00601390 761* @tc.desc Reported event name is empty. 762*/ 763HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_2400, Function|MediumTest|Level3){ 764 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_2400 start" << endl; 765 char str[] = "hello"; 766 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 767 ParamList list = OH_HiAppEvent_CreateParamList(); 768 OH_HiAppEvent_AddStringParam(list, "str_key", str); 769 EventType eventType = EventType::FAULT; 770 int ret = OH_HiAppEvent_Write(TEST_DOMAIN_NAME, "", eventType, list); 771 sleep(1); //等待1s 772 OH_HiAppEvent_DestroyParamList(list); 773 ASSERT_TRUE(ret == -1); 774 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_2400 end" << endl; 775} 776 777/** 778* @tc.name HiAppEvent Native Write Interface Test, Reporting the event name starts with number. 779* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_2500 780* @author f00601390 781* @tc.desc Reported event name starts with number. 782*/ 783HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_2500, Function|MediumTest|Level3){ 784 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_2500 start" << endl; 785 char str[] = "hello"; 786 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 787 ParamList list = OH_HiAppEvent_CreateParamList(); 788 OH_HiAppEvent_AddStringParam(list, "str_key", str); 789 EventType eventType = EventType::FAULT; 790 int ret = OH_HiAppEvent_Write(TEST_DOMAIN_NAME, "9527_test_event", eventType, list); 791 sleep(1); //等待1s 792 OH_HiAppEvent_DestroyParamList(list); 793 ASSERT_TRUE(ret == -1); 794 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_2500 end" << endl; 795} 796 797/** 798* @tc.name HiAppEvent Native Write Interface Test, 33 parameters are reported. 799* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_2700 800* @author f00601390 801* @tc.desc key and values 33 parameters are reported. 802*/ 803HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_2700, Function|MediumTest|Level4){ 804 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_2700 start" << endl; 805 bool result = false; 806 string getlogFile; 807 string path; 808 int maxLen = 32; 809 string keys[maxLen + 1]; 810 string values[maxLen + 1]; 811 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 812 ParamList list = OH_HiAppEvent_CreateParamList(); 813 for (int i = 0; i <= maxLen; i++){ 814 keys[i] = "key" + std::to_string(i); 815 values[i] = "value" + std::to_string(i); 816 OH_HiAppEvent_AddStringParam(list, keys[i].c_str(), values[i].c_str()); 817 } 818 EventType eventType = EventType::FAULT; 819 int ret = OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 820 sleep(1); //等待1s 821 std::vector<std::string> file; 822 file = getfileinpath(logPath); 823 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 824 path = logPath + getlogFile; 825 string fileinfo = ""; 826 fileinfo = ReadFile(path); 827 std::vector<std::string> para = {"test_event", "\"type_\":1", "\"key31\":\"value31\"", "\"key15\":\"value15\""}; 828 if (fileinfo != "") { 829 result = CheckInfo(para, fileinfo); 830 } else { 831 std::cout << "DFX_DFT_HiviewKit_HiAppEvent_Native_2700 file error" << std::endl; 832 } 833 OH_HiAppEvent_DestroyParamList(list); 834 ASSERT_TRUE(ret == 5); 835 ASSERT_TRUE(result); 836 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_2700 end" << endl; 837} 838 839/** 840* @tc.name HiAppEvent Native Write Interface Test, key and value is empty. 841* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_2800 842* @author f00601390 843* @tc.desc key and value is empty. 844*/ 845HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_2800, Function|MediumTest|Level3){ 846 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_2800 start" << endl; 847 bool result = false; 848 string getlogFile; 849 string path; 850 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 851 ParamList list = OH_HiAppEvent_CreateParamList(); 852 OH_HiAppEvent_AddStringParam(list, "", ""); 853 EventType eventType = EventType::FAULT; 854 int ret = OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 855 sleep(1); //等待1s 856 std::vector<std::string> file; 857 file = getfileinpath(logPath); 858 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 859 path = logPath + getlogFile; 860 string fileinfo = ""; 861 fileinfo = ReadFile(path); 862 std::vector<std::string> para = {"test_event", "\"type_\":1"}; 863 if (fileinfo != "") { 864 result = CheckInfo(para, fileinfo); 865 } else { 866 std::cout << "DFX_DFT_HiviewKit_HiAppEvent_Native_2800 file error" << std::endl; 867 } 868 OH_HiAppEvent_DestroyParamList(list); 869 ASSERT_TRUE(result); 870 ASSERT_TRUE(ret == 1); 871 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_2800 end" << endl; 872} 873 874/** 875* @tc.name HiAppEvent Native Write Interface Test, key is not string type. 876* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_2900 877* @author f00601390 878* @tc.desc key is not string type. 879*/ 880HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_2900, Function|MediumTest|Level4){ 881 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_2900 start" << endl; 882 bool result = false; 883 string getlogFile; 884 string path; 885 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 886 ParamList list = OH_HiAppEvent_CreateParamList(); 887 OH_HiAppEvent_AddStringParam(list, "", "hello"); 888 EventType eventType = EventType::FAULT; 889 int ret = OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 890 sleep(1); //等待1s 891 std::vector<std::string> file; 892 file = getfileinpath(logPath); 893 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 894 path = logPath + getlogFile; 895 string fileinfo = ""; 896 fileinfo = ReadFile(path); 897 std::vector<std::string> para = {"test_event", "\"type_\":1"}; 898 if (fileinfo != "") { 899 result = CheckInfo(para, fileinfo); 900 } else { 901 std::cout << "DFX_DFT_HiviewKit_HiAppEvent_Native_2900 file error" << std::endl; 902 } 903 OH_HiAppEvent_DestroyParamList(list); 904 ASSERT_TRUE(result); 905 ASSERT_TRUE(ret == 1); 906 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_2900 end" << endl; 907} 908 909/** 910* @tc.name HiAppEvent Native Write Interface Test, key start with number. 911* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_3000 912* @author f00601390 913* @tc.desc key start with number. 914*/ 915HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_3000, Function|MediumTest|Level4){ 916 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_3000 start" << endl; 917 bool result = false; 918 string getlogFile; 919 string path; 920 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 921 ParamList list = OH_HiAppEvent_CreateParamList(); 922 OH_HiAppEvent_AddStringParam(list, "9527_hello", "world"); 923 EventType eventType = EventType::FAULT; 924 int ret = OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 925 sleep(1); //等待1s 926 std::vector<std::string> file; 927 file = getfileinpath(logPath); 928 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 929 path = logPath + getlogFile; 930 string fileinfo = ""; 931 fileinfo = ReadFile(path); 932 std::vector<std::string> para = {"test_event", "\"type_\":1"}; 933 if (fileinfo != "") { 934 result = CheckInfo(para, fileinfo); 935 } else { 936 std::cout << "DFX_DFT_HiviewKit_HiAppEvent_Native_3000 file error" << std::endl; 937 } 938 OH_HiAppEvent_DestroyParamList(list); 939 ASSERT_TRUE(result); 940 ASSERT_TRUE(ret == 1); 941 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_3000 end" << endl; 942} 943 944/** 945* @tc.name HiAppEvent Native Write Interface Test, Reporting the Key value of the string Type. 946* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_3100 947* @author f00601390 948* @tc.desc The keyvalue is reported as a string, 8 * 1024 + 1 length. 949*/ 950HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_3100, Function|MediumTest|Level4){ 951 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_3100 start" << endl; 952 bool result = false; 953 string strs = ""; 954 for(int i=0;i<1024;i++){ 955 strs.append("abcdefgh"); 956 } 957 strs.append("a"); 958 string getlogFile; 959 string path; 960 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 961 ParamList list = OH_HiAppEvent_CreateParamList(); 962 OH_HiAppEvent_AddStringParam(list, "str_key", strs.c_str()); 963 EventType eventType = EventType::FAULT; 964 int ret = OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 965 sleep(1); //等待1s 966 std::vector<std::string> file; 967 file = getfileinpath(logPath); 968 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 969 path = logPath + getlogFile; 970 string fileinfo = ""; 971 fileinfo = ReadFile(path); 972 std::vector<std::string> para = {"test_event", "\"type_\":1"}; 973 if (fileinfo != "") { 974 result = CheckInfo(para, fileinfo); 975 } else { 976 std::cout << "DFX_DFT_HiviewKit_HiAppEvent_Native_3100 file error" << std::endl; 977 } 978 OH_HiAppEvent_DestroyParamList(list); 979 ASSERT_TRUE(result); 980 ASSERT_TRUE(ret == 4); 981 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_3100 end" << endl; 982} 983 984/** 985* @tc.name HiAppEvent Native Write Interface Test, key and value is NULL. 986* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_3200 987* @author f00601390 988* @tc.desc key and value is NULL. 989*/ 990HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_3200, Function|MediumTest|Level3){ 991 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_3200 start" << endl; 992 bool result = false; 993 string getlogFile; 994 string path; 995 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 996 ParamList list = OH_HiAppEvent_CreateParamList(); 997 OH_HiAppEvent_AddStringParam(list, NULL, NULL); 998 EventType eventType = EventType::FAULT; 999 int ret = OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 1000 sleep(1); //等待1s 1001 std::vector<std::string> file; 1002 file = getfileinpath(logPath); 1003 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 1004 path = logPath + getlogFile; 1005 string fileinfo = ""; 1006 fileinfo = ReadFile(path); 1007 std::vector<std::string> para = {"test_event", "\"type_\":1"}; 1008 if (fileinfo != "") { 1009 result = CheckInfo(para, fileinfo); 1010 } else { 1011 std::cout << "DFX_DFT_HiviewKit_HiAppEvent_Native_3200 file error" << std::endl; 1012 } 1013 OH_HiAppEvent_DestroyParamList(list); 1014 ASSERT_TRUE(ret == 0); 1015 ASSERT_TRUE(result); 1016 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_3200 end" << endl; 1017} 1018 1019/** 1020* @tc.name HiAppEvent Native Write Interface Test, List Type Reporting,101 List Parameters. 1021* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_3300 1022* @author f00601390 1023* @tc.desc 101 List Parameters. 1024*/ 1025HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_3300, Function|MediumTest|Level4){ 1026 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_3300 start" << endl; 1027 bool result = false; 1028 char* strs[101]; 1029 int num = 32; 1030 for(int i=0;i<101;i++){ 1031 strs[i] = new char[32]; 1032 sprintf_s(strs[i], num,"hello_world_%d",i); 1033 std::cout << sizeof(strs[i]) << std::endl; 1034 std::cout << strs[i] << std::endl; 1035 } 1036 string getlogFile; 1037 string path; 1038 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 1039 ParamList list = OH_HiAppEvent_CreateParamList(); 1040 OH_HiAppEvent_AddStringArrayParam(list, "str_arr_key", strs, sizeof(strs) / sizeof(strs[0])); 1041 EventType eventType = EventType::BEHAVIOR; 1042 int ret = OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 1043 sleep(1); //等待1s 1044 std::vector<std::string> file; 1045 file = getfileinpath(logPath); 1046 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 1047 path = logPath + getlogFile; 1048 string fileinfo = ""; 1049 fileinfo = ReadFile(path); 1050 std::vector<std::string> para = {"test_event", "\"type_\":4", "\"str_arr_key\":[\"hello_world_0\",\"hello_world_1\",\"hello_world_2\"", "hello_world_99"}; 1051 if (fileinfo != "") { 1052 result = CheckInfo(para, fileinfo); 1053 } else { 1054 std::cout << "DFX_DFT_HiviewKit_HiAppEvent_Native_3300 file error" << std::endl; 1055 } 1056 OH_HiAppEvent_DestroyParamList(list); 1057 ASSERT_TRUE(ret == 6); 1058 ASSERT_TRUE(result); 1059 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_3300 end" << endl; 1060} 1061 1062/** 1063* @tc.name HiAppEvent Native Write Interface Test, 32 parameters are reported. 1064* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_3400 1065* @author f00601390 1066* @tc.desc key and values 32 parameters are reported. 1067*/ 1068HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_3400, Function|MediumTest|Level4){ 1069 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_3400 start" << endl; 1070 bool result = false; 1071 string getlogFile; 1072 string path; 1073 int maxLen = 32; 1074 string keys[maxLen+1]; 1075 string values[maxLen+1]; 1076 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 1077 ParamList list = OH_HiAppEvent_CreateParamList(); 1078 for (int i = 0; i <= maxLen; i++){ 1079 keys[i] = "key" + std::to_string(i); 1080 values[i] = "value" + std::to_string(i); 1081 OH_HiAppEvent_AddStringParam(list, keys[i].c_str(), values[i].c_str()); 1082 } 1083 EventType eventType = EventType::FAULT; 1084 int ret = OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 1085 sleep(1); //等待1s 1086 std::vector<std::string> file; 1087 file = getfileinpath(logPath); 1088 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 1089 path = logPath + getlogFile; 1090 string fileinfo = ""; 1091 fileinfo = ReadFile(path); 1092 std::vector<std::string> para = {"test_event", "\"type_\":1", "\"key31\":\"value31\"","\"key15\":\"value15\"","\"key0\":\"value0\""}; 1093 if (fileinfo != "") { 1094 result = CheckInfo(para, fileinfo); 1095 } else { 1096 std::cout << "DFX_DFT_HiviewKit_HiAppEvent_Native_3400 file error" << std::endl; 1097 } 1098 OH_HiAppEvent_DestroyParamList(list); 1099 ASSERT_TRUE(ret == 5); 1100 ASSERT_TRUE(result); 1101 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_3400 end" << endl; 1102} 1103 1104/** 1105* @tc.name HiAppEvent Native Write Interface Test, 32 parameters are reported. 1106* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_3500 1107* @author f00601390 1108* @tc.desc key and values 32 parameters are reported. 1109*/ 1110HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_3500, Function|MediumTest|Level4){ 1111 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_3500 start" << endl; 1112 string getlogFile; 1113 string path; 1114 OH_HiAppEvent_Configure("max_storage", "10M"); 1115 int maxLen = 32; 1116 string keys[maxLen+1]; 1117 string values[maxLen+1]; 1118 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 1119 std::vector<std::string> cmdret; 1120 time_t nowtime; 1121 struct tm* p; 1122 time(&nowtime); 1123 p = localtime(&nowtime); 1124 char s[25]; 1125 sprintf_s(s, sizeof(s),"app_event_%d%02d%02d.log", 1900 + p->tm_year, 1 + p->tm_mon, p->tm_mday); 1126 std::cout << s << std::endl; 1127 string fname = s; 1128 string cmd = "dd if=/dev/zero of=/data/test/hiappevent/" + fname + " bs=11M count=1"; 1129 ExecCmdWithRet(cmd, cmdret); 1130 ParamList list = OH_HiAppEvent_CreateParamList(); 1131 for (int i = 0; i <= maxLen; i++){ 1132 keys[i] = "key" + std::to_string(i); 1133 values[i] = "value" + std::to_string(i); 1134 OH_HiAppEvent_AddStringParam(list, keys[i].c_str(), values[i].c_str()); 1135 } 1136 EventType eventType = EventType::FAULT; 1137 OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 1138 sleep(1); //等待1s 1139 std::vector<std::string> file; 1140 file = getfileinpath(logPath); 1141 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 1142 path = logPath + getlogFile; 1143 bool result = false; 1144 string fileinfo = ReadFile(path); 1145 std::vector<std::string> para = {"test_event", "\"type_\":1", "\"key31\":\"value31\"","\"key15\":\"value15\"","\"key0\":\"value0\""}; 1146 if (fileinfo != "") { 1147 result = CheckInfo(para, fileinfo); 1148 } 1149 OH_HiAppEvent_DestroyParamList(list); 1150 ASSERT_TRUE(result); 1151 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_3500 end" << endl; 1152} 1153 1154/** 1155* @tc.name HiAppEvent Native Write Interface Test, 32 parameters are reported. 1156* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_3500 1157* @author f00601390 1158* @tc.desc key and values 32 parameters are reported. 1159*/ 1160HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_3600, Function|MediumTest|Level4){ 1161 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_3600 start" << endl; 1162 string getlogFile; 1163 string path; 1164 OH_HiAppEvent_Configure("max_storage", "1M"); 1165 int maxLen = 32; 1166 string keys[maxLen+1]; 1167 string values[maxLen+1]; 1168 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 1169 std::vector<std::string> cmdret; 1170 time_t nowtime; 1171 struct tm* p; 1172 time(&nowtime); 1173 p = localtime(&nowtime); 1174 char s[25]; 1175 sprintf_s(s, sizeof(s),"app_event_%d%02d%02d.log", 1900 + p->tm_year, 1 + p->tm_mon, p->tm_mday); 1176 string fname = s; 1177 string cmd = "dd if=/dev/zero of=/data/test/hiappevent/" + fname + " bs=1.5M count=1"; 1178 ExecCmdWithRet(cmd, cmdret); 1179 ParamList list = OH_HiAppEvent_CreateParamList(); 1180 for (int i = 0; i <= maxLen; i++){ 1181 keys[i] = "key" + std::to_string(i); 1182 values[i] = "value" + std::to_string(i); 1183 OH_HiAppEvent_AddStringParam(list, keys[i].c_str(), values[i].c_str()); 1184 } 1185 EventType eventType = EventType::FAULT; 1186 OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 1187 sleep(1); //等待1s 1188 std::vector<std::string> file; 1189 file = getfileinpath(logPath); 1190 getlogFile = accumulate(file.begin(), file.end(), getlogFile); 1191 path = logPath + getlogFile; 1192 bool result = false; 1193 string fileinfo = ReadFile(path); 1194 std::vector<std::string> para = {"test_event", "\"type_\":1", "\"key31\":\"value31\"","\"key15\":\"value15\"","\"key0\":\"value0\""}; 1195 if (fileinfo != "") { 1196 result = CheckInfo(para, fileinfo); 1197 } 1198 OH_HiAppEvent_DestroyParamList(list); 1199 ASSERT_TRUE(result); 1200 OH_HiAppEvent_Configure("max_storage", "10M"); 1201 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_3600 end" << endl; 1202} 1203 1204/** 1205* @tc.name Test of the HiAppEvent Native Write Interface in which the keyvalue 1206* is of the boolean type and the bool value is true. 1207* @tc.number DFX_DFT_HiviewKit_HiAppEvent_Native_3700 1208* @author f00601390 1209* @tc.desc The keyvalue is of the boolean type and the bool value is false. 1210*/ 1211HWTEST_F(HiAppEventCPPTest, DFX_DFT_HiviewKit_HiAppEvent_Native_3700, Function|MediumTest|Level3){ 1212 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_3700 start" << endl; 1213 OH_HiAppEvent_Configure("disable", "true"); 1214 bool boolean = true; 1215 OHOS::HiviewDFX::HiAppEventConfig::GetInstance().SetStorageDir("/data/test/hiappevent/"); 1216 ParamList list = OH_HiAppEvent_CreateParamList(); 1217 OH_HiAppEvent_AddBoolParam(list, "bool_key", boolean); 1218 EventType eventType = EventType::FAULT; 1219 int ret = OH_HiAppEvent_Write(TEST_DOMAIN_NAME, TEST_EVENT_NAME, eventType, list); 1220 sleep(1); //等待1s 1221 std::vector<std::string> file; 1222 file = getfileinpath(logPath); 1223 OH_HiAppEvent_DestroyParamList(list); 1224 ASSERT_TRUE(file.size() == 0); 1225 ASSERT_TRUE(ret == -99); 1226 OH_HiAppEvent_Configure("disable", "false"); 1227 GTEST_LOG_(INFO) << "DFX_DFT_HiviewKit_HiAppEvent_Native_3700 end" << endl; 1228} 1229