1 /*
2 * Copyright (c) 2022-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 #include <string>
18
19 #include "rs_frame_report.h"
20
21 using namespace testing;
22 using namespace testing::ext;
23
24 namespace OHOS {
25 namespace Rosen {
26 class RsFrameReportTest : public testing::Test {
27 public:
28 static void SetUpTestCase();
29 static void TearDownTestCase();
30 void SetUp() override;
31 void TearDown() override;
32 };
33
SetUpTestCase()34 void RsFrameReportTest::SetUpTestCase() {}
TearDownTestCase()35 void RsFrameReportTest::TearDownTestCase() {}
SetUp()36 void RsFrameReportTest::SetUp() {}
TearDown()37 void RsFrameReportTest::TearDown() {}
38
39 /**
40 * @tc.name: GetEnable001
41 * @tc.desc: test
42 * @tc.type:FUNC
43 * @tc.require:
44 */
45 HWTEST_F(RsFrameReportTest, GetEnable001, TestSize.Level1)
46 {
47 RsFrameReport& fr = RsFrameReport::GetInstance();
48 fr.LoadLibrary();
49 fr.CloseLibrary();
50 fr.GetEnable();
51 EXPECT_EQ(fr.GetEnable(), 0);
52 }
53
54 /**
55 * @tc.name: ProcessCommandsStart001
56 * @tc.desc: test
57 * @tc.type:FUNC
58 * @tc.require:
59 */
60 HWTEST_F(RsFrameReportTest, ProcessCommandsStart001, TestSize.Level1)
61 {
62 RsFrameReport& fr = RsFrameReport::GetInstance();
63 fr.LoadLibrary();
64 EXPECT_TRUE(fr.frameSchedSoLoaded_);
65 EXPECT_EQ(fr.processCommandsStartFun_, nullptr);
66 fr.ProcessCommandsStart();
67 EXPECT_NE(fr.processCommandsStartFun_, nullptr);
68 fr.ProcessCommandsStart();
69 }
70
71 /**
72 * @tc.name: AnimateStart001
73 * @tc.desc: test
74 * @tc.type:FUNC
75 * @tc.require:
76 */
77 HWTEST_F(RsFrameReportTest, AnimateStart001, TestSize.Level1)
78 {
79 RsFrameReport& fr = RsFrameReport::GetInstance();
80 EXPECT_EQ(fr.animateStartFunc_, nullptr);
81 fr.AnimateStart();
82 EXPECT_NE(fr.animateStartFunc_, nullptr);
83 fr.AnimateStart();
84 }
85
86 /**
87 * @tc.name: RenderStart001
88 * @tc.desc: test
89 * @tc.type:FUNC
90 * @tc.require:
91 */
92 HWTEST_F(RsFrameReportTest, RenderStart001, TestSize.Level1)
93 {
94 RsFrameReport& fr = RsFrameReport::GetInstance();
95 EXPECT_EQ(fr.renderStartFunc_, nullptr);
96 uint64_t timestamp = static_cast<uint64_t>(
97 std::chrono::duration_cast<std::chrono::milliseconds>(
98 std::chrono::steady_clock::now().time_since_epoch()).count());
99 fr.RenderStart(timestamp);
100 EXPECT_NE(fr.renderStartFunc_, nullptr);
101 fr.RenderStart(timestamp);
102 }
103
104 /**
105 * @tc.name: RSRenderStart001
106 * @tc.desc: test
107 * @tc.type:FUNC
108 * @tc.require:
109 */
110 HWTEST_F(RsFrameReportTest, RSRenderStart001, TestSize.Level1)
111 {
112 RsFrameReport& fr = RsFrameReport::GetInstance();
113 EXPECT_EQ(fr.parallelRenderStartFunc_, nullptr);
114 fr.RSRenderStart();
115 }
116
117 /**
118 * @tc.name: RenderEnd001
119 * @tc.desc: test
120 * @tc.type:FUNC
121 * @tc.require:
122 */
123 HWTEST_F(RsFrameReportTest, RenderEnd001, TestSize.Level1)
124 {
125 RsFrameReport& fr = RsFrameReport::GetInstance();
126 EXPECT_EQ(fr.renderEndFunc_, nullptr);
127 fr.RenderEnd();
128 EXPECT_NE(fr.renderEndFunc_, nullptr);
129 fr.RenderEnd();
130 }
131
132 /**
133 * @tc.name: RSRenderEnd001
134 * @tc.desc: test
135 * @tc.type:FUNC
136 * @tc.require:
137 */
138 HWTEST_F(RsFrameReportTest, RSRenderEnd001, TestSize.Level1)
139 {
140 RsFrameReport& fr = RsFrameReport::GetInstance();
141 EXPECT_EQ(fr.parallelRenderEndFunc_, nullptr);
142 fr.RSRenderEnd();
143 }
144
145 /**
146 * @tc.name: SendCommandsStart001
147 * @tc.desc: test
148 * @tc.type:FUNC
149 * @tc.require:
150 */
151 HWTEST_F(RsFrameReportTest, SendCommandsStart001, TestSize.Level1)
152 {
153 RsFrameReport& fr = RsFrameReport::GetInstance();
154 EXPECT_EQ(fr.sendCommandsStartFunc_, nullptr);
155 fr.SendCommandsStart();
156 EXPECT_NE(fr.sendCommandsStartFunc_, nullptr);
157 fr.SendCommandsStart();
158 }
159
160 /**
161 * @tc.name: SetFrameParam001
162 * @tc.desc: test
163 * @tc.type:FUNC
164 * @tc.require:
165 */
166 HWTEST_F(RsFrameReportTest, SetFrameParam001, TestSize.Level1)
167 {
168 RsFrameReport& fr = RsFrameReport::GetInstance();
169 EXPECT_EQ(fr.setFrameParamFunc_, nullptr);
170 fr.SetFrameParam(0, 0, 0, 0);
171 EXPECT_NE(fr.setFrameParamFunc_, nullptr);
172 fr.SetFrameParam(1, 1, 1, 1);
173 }
174
175 /**
176 * @tc.name: LoadLibrary001
177 * @tc.desc: test
178 * @tc.type:FUNC
179 * @tc.require:
180 */
181 HWTEST_F(RsFrameReportTest, LoadLibrary001, TestSize.Level1)
182 {
183 RsFrameReport& fr = RsFrameReport::GetInstance();
184 fr.CloseLibrary();
185 EXPECT_FALSE(fr.frameSchedSoLoaded_);
186 fr.LoadLibrary();
187 EXPECT_TRUE(fr.frameSchedSoLoaded_);
188 fr.CloseLibrary();
189 }
190
191 /**
192 * @tc.name: LoadSymbol001
193 * @tc.desc: test
194 * @tc.type:FUNC
195 * @tc.require:
196 */
197 HWTEST_F(RsFrameReportTest, LoadSymbol001, TestSize.Level1)
198 {
199 RsFrameReport& fr = RsFrameReport::GetInstance();
200 fr.CloseLibrary();
201 EXPECT_FALSE(fr.frameSchedSoLoaded_);
202 fr.LoadSymbol("function");
203 fr.LoadLibrary();
204 EXPECT_TRUE(fr.frameSchedSoLoaded_);
205 fr.LoadSymbol("function");
206 fr.CloseLibrary();
207 }
208 } // namespace Rosen
209 } // namespace OHOS
210