1 /*
2  * Copyright (c) 2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "gtest/gtest.h"
17 #include "hilog_adapter.h"
18 #include "ohos_adapter_helper.h"
19 #include "hitrace_adapter_impl.h"
20 
21 #include "parameters.h"
22 using namespace OHOS;
23 
24 using testing::ext::TestSize;
25 
26 namespace OHOS::NWeb {
27 /**
28  * @tc.name: NormalScene.
29  * @tc.desc: test normal scene of HiViewDFXAdapter.
30  * @tc.type: FUNC.
31  * @tc.require:
32  */
33 HWTEST(HiViewDFXAdapterTest, NormalScene, TestSize.Level1)
34 {
35     HiLogAdapter::PrintLog(LogLevelAdapter::INFO, "nwebTest", "nweb hilogAdapter PrintLog Test");
36 
37     HiLogAdapter::PrintConsoleLog(LogLevelAdapter::INFO, "ARKWEB-CONSOLE", "nwe console log test");
38 
39     int ret = OhosAdapterHelper::GetInstance().GetHiSysEventAdapterInstance().Write(
40         "testEvent", HiSysEventAdapter::EventType::STATISTIC, { "testkey1", "0"});
41     EXPECT_EQ(ret, 0);
42 
43     ret = OhosAdapterHelper::GetInstance().GetHiSysEventAdapterInstance().Write(
44         "testEvent", HiSysEventAdapter::EventType::STATISTIC, { "testkey1", "0", "testkey2", "0"});
45     EXPECT_EQ(ret, 0);
46 
47     ret = OhosAdapterHelper::GetInstance().GetHiSysEventAdapterInstance().Write(
48         "testEvent", HiSysEventAdapter::EventType::STATISTIC, { "testkey1", "0", "testkey2", "0", "testkey3", "0" });
49     EXPECT_EQ(ret, 0);
50 
51     ret = OhosAdapterHelper::GetInstance().GetHiSysEventAdapterInstance().Write("testEvent",
52         HiSysEventAdapter::EventType::STATISTIC,
53         { "testkey1", "0", "testkey2", "testvalue2", "testkey3", "0", "testkey4", "testvalue4" });
54     EXPECT_EQ(ret, 0);
55 
56     ret = OhosAdapterHelper::GetInstance().GetHiSysEventAdapterInstance().Write("testEvent",
57         HiSysEventAdapter::EventType::STATISTIC,
58         { "testkey1", "0", "testkey2", "0", "testkey3", "0", "testkey4", "0", "testkey5", "0.0" });
59     EXPECT_EQ(ret, 0);
60 
61     ret = OhosAdapterHelper::GetInstance().GetHiSysEventAdapterInstance().Write("testEvent",
62         HiSysEventAdapter::EventType::STATISTIC,
63         { "testkey1", "0", "testkey2", "0", "testkey3", "0", "testkey4", "0", "testkey5", "0.0", "testkey6", "0.0" });
64     EXPECT_EQ(ret, 0);
65 
66     ret = OhosAdapterHelper::GetInstance().GetHiSysEventAdapterInstance().Write("testEvent",
67         HiSysEventAdapter::EventType::STATISTIC,
68         { "testkey1", "0", "testkey2", "0", "testkey3", "0", "testkey4", "0", "testkey5", "0.0", "testkey6", "0.0",
69           "testkey7", "0.0" });
70     EXPECT_EQ(ret, 0);
71 
72     ret = OhosAdapterHelper::GetInstance().GetHiSysEventAdapterInstance().Write("testEvent",
73         HiSysEventAdapter::EventType::STATISTIC,
74         { "testkey1", "0", "testkey2", "0", "testkey3", "0", "testkey4", "0", "testkey5", "0.0", "testkey6", "0.0",
75           "testkey7", "0.0", "testkey8", "0.0" });
76     EXPECT_EQ(ret, 0);
77 
78     OhosAdapterHelper::GetInstance().GetHiTraceAdapterInstance().StartTrace("test");
79     OhosAdapterHelper::GetInstance().GetHiTraceAdapterInstance().StartAsyncTrace("test", 0);
80     OhosAdapterHelper::GetInstance().GetHiTraceAdapterInstance().CountTrace("test", 1);
81     OhosAdapterHelper::GetInstance().GetHiTraceAdapterInstance().FinishAsyncTrace("test", 0);
82     OhosAdapterHelper::GetInstance().GetHiTraceAdapterInstance().FinishTrace();
83     HiTraceAdapterImpl::GetInstance().IsHiTraceEnable();
84 }
85 
86 /**
87  * @tc.name: NormalScene_01.
88  * @tc.desc: test normal scene of HiViewDFXAdapter.
89  * @tc.type: FUNC 01.
90  * @tc.require:
91  */
92 HWTEST(HiViewDFXAdapterTest, NormalScene_01, TestSize.Level1)
93 {
94     OhosAdapterHelper::GetInstance().GetHiTraceAdapterInstance().StartOHOSTrace("test");
95     OhosAdapterHelper::GetInstance().GetHiTraceAdapterInstance().CountOHOSTrace("test", 1);
96     OhosAdapterHelper::GetInstance().GetHiTraceAdapterInstance().FinishOHOSTrace();
97     uint64_t val = (1ULL << 24);
98     std::string value = std::to_string(val);
99     OHOS::system::SetParameter("debug.hitrace.tags.enableflags", value);
100     OhosAdapterHelper::GetInstance().GetHiTraceAdapterInstance().StartOHOSTrace("test");
101     OhosAdapterHelper::GetInstance().GetHiTraceAdapterInstance().CountOHOSTrace("test", 1);
102     OhosAdapterHelper::GetInstance().GetHiTraceAdapterInstance().FinishOHOSTrace();
103     val = (1ULL << 39);
104     value = std::to_string(val);
105     OHOS::system::SetParameter("debug.hitrace.tags.enableflags", value);
106     OhosAdapterHelper::GetInstance().GetHiTraceAdapterInstance().StartOHOSTrace("test");
107     OhosAdapterHelper::GetInstance().GetHiTraceAdapterInstance().CountOHOSTrace("test", 1);
108     OhosAdapterHelper::GetInstance().GetHiTraceAdapterInstance().FinishOHOSTrace();
109     HiTraceAdapterImpl::GetInstance().IsACETraceEnable();
110 }
111 } // namespace OHOS::NWeb
112