1 /*
2  * Copyright (c) 2023-2024 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, Hardware
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 
18 #define private public
19 #include "render_frame_trace.h"
20 #include "render_frame_trace_impl.h"
21 #undef private
22 
23 namespace OHOS {
24 namespace Rosen {
25 using namespace testing;
26 using namespace testing::ext;
27 using namespace FRAME_TRACE;
28 
29 class RenderFrameTraceImplTest : public testing::Test {
30 public:
31     static void SetUpTestCase();
32     static void TearDownTestCase();
33     void SetUp() override;
34     void TearDown() override;
35 };
36 
SetUpTestCase()37 void RenderFrameTraceImplTest::SetUpTestCase() {}
TearDownTestCase()38 void RenderFrameTraceImplTest::TearDownTestCase() {}
SetUp()39 void RenderFrameTraceImplTest::SetUp() {}
TearDown()40 void RenderFrameTraceImplTest::TearDown() {}
41 
42 /**
43  * @tc.name: AccessFrameTrace
44  * @tc.desc: test
45  * @tc.type:FUNC
46  * @tc.require:
47  */
48 HWTEST_F(RenderFrameTraceImplTest, AccessFrameTrace, TestSize.Level1)
49 {
50     bool ret = RenderFrameTraceImpl::instance_->AccessFrameTrace();
51     EXPECT_NE(ret, 0);
52 }
53 
54 /**
55  * @tc.name: RenderFrameTraceOpen
56  * @tc.desc: test
57  * @tc.type:FUNC
58  * @tc.require:
59  */
60 HWTEST_F(RenderFrameTraceImplTest, RenderFrameTraceOpen, TestSize.Level1)
61 {
62     RenderFrameTraceImpl::instance_->RenderFrameTraceClose();
63     RenderFrameTraceImpl::instance_->RenderFrameTraceOpen();
64     RenderFrameTraceImpl::instance_->RenderFrameTraceClose();
65     bool ret = RenderFrameTraceImpl::instance_->RenderFrameTraceIsOpen();
66     EXPECT_EQ(ret, 0);
67 }
68 
69 /**
70  * @tc.name: RenderFrameTraceIsOpen
71  * @tc.desc: test
72  * @tc.type:FUNC
73  * @tc.require:
74  */
75 HWTEST_F(RenderFrameTraceImplTest, RenderFrameTraceIsOpen, TestSize.Level1)
76 {
77     RenderFrameTraceImpl::instance_->RenderFrameTraceClose();
78     bool ret = RenderFrameTraceImpl::instance_->RenderFrameTraceIsOpen();
79     EXPECT_EQ(ret, 0);
80 }
81 
82 /**
83  * @tc.name: RenderFrameTraceClose
84  * @tc.desc: test
85  * @tc.type:FUNC
86  * @tc.require:
87  */
88 HWTEST_F(RenderFrameTraceImplTest, RenderFrameTraceClose, TestSize.Level1)
89 {
90     RenderFrameTraceImpl::instance_->RenderFrameTraceClose();
91     bool ret = RenderFrameTraceImpl::instance_->RenderFrameTraceIsOpen();
92     EXPECT_EQ(ret, 0);
93 }
94 
95 /**
96  * @tc.name: RenderStartAndEndFrameTrace
97  * @tc.desc: test
98  * @tc.type:FUNC
99  * @tc.require:
100  */
101 HWTEST_F(RenderFrameTraceImplTest, ui, TestSize.Level1)
102 {
103     const std::string traceTag = "ui";
104     bool ret = RenderFrameTraceImpl::instance_->AccessFrameTrace();
105     EXPECT_EQ(ret, true);
106     RenderFrameTraceImpl::instance_->RenderStartFrameTrace(traceTag);
107     RenderFrameTraceImpl::instance_->RenderEndFrameTrace(traceTag);
108 }
109 
110 /**
111  * @tc.name: RenderStartAndEndFrameTrace
112  * @tc.desc: test
113  * @tc.type:FUNC
114  * @tc.require:
115  */
116 HWTEST_F(RenderFrameTraceImplTest, renderthread, TestSize.Level1)
117 {
118     const std::string traceTag = "renderthread";
119     bool ret = RenderFrameTraceImpl::instance_->AccessFrameTrace();
120     EXPECT_EQ(ret, true);
121     RenderFrameTraceImpl::instance_->RenderStartFrameTrace(traceTag);
122     RenderFrameTraceImpl::instance_->RenderEndFrameTrace(traceTag);
123 }
124 
125 /**
126  * @tc.name: RenderStartAndEndFrameTrace
127  * @tc.desc: test
128  * @tc.type:FUNC
129  * @tc.require:
130  */
131 HWTEST_F(RenderFrameTraceImplTest, renderservice, TestSize.Level1)
132 {
133     const std::string traceTag = "renderservice";
134     bool ret = RenderFrameTraceImpl::instance_->AccessFrameTrace();
135     EXPECT_EQ(ret, true);
136     RenderFrameTraceImpl::instance_->RenderStartFrameTrace(traceTag);
137     RenderFrameTraceImpl::instance_->RenderEndFrameTrace(traceTag);
138 }
139 
140 /**
141  * @tc.name: RenderStartAndEndFrameTrace
142  * @tc.desc: test
143  * @tc.type:FUNC
144  * @tc.require:
145  */
146 HWTEST_F(RenderFrameTraceImplTest, test, TestSize.Level1)
147 {
148     const std::string traceTag = "test";
149     bool ret = RenderFrameTraceImpl::instance_->AccessFrameTrace();
150     EXPECT_EQ(ret, true);
151     RenderFrameTraceImpl::instance_->RenderStartFrameTrace(traceTag);
152     RenderFrameTraceImpl::instance_->RenderEndFrameTrace(traceTag);
153 }
154 } // namespace Rosen
155 } // namespace OHOS
156