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::nanoseconds>(
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: RenderEnd001
106 * @tc.desc: test
107 * @tc.type:FUNC
108 * @tc.require:
109 */
110 HWTEST_F(RsFrameReportTest, RenderEnd001, TestSize.Level1)
111 {
112 RsFrameReport& fr = RsFrameReport::GetInstance();
113 EXPECT_EQ(fr.renderEndFunc_, nullptr);
114 fr.RenderEnd();
115 EXPECT_NE(fr.renderEndFunc_, nullptr);
116 fr.RenderEnd();
117 }
118
119 /**
120 * @tc.name: SendCommandsStart001
121 * @tc.desc: test
122 * @tc.type:FUNC
123 * @tc.require:
124 */
125 HWTEST_F(RsFrameReportTest, SendCommandsStart001, TestSize.Level1)
126 {
127 RsFrameReport& fr = RsFrameReport::GetInstance();
128 EXPECT_EQ(fr.sendCommandsStartFunc_, nullptr);
129 fr.SendCommandsStart();
130 EXPECT_NE(fr.sendCommandsStartFunc_, nullptr);
131 fr.SendCommandsStart();
132 }
133
134 /**
135 * @tc.name: SetFrameParam001
136 * @tc.desc: test
137 * @tc.type:FUNC
138 * @tc.require:
139 */
140 HWTEST_F(RsFrameReportTest, SetFrameParam001, TestSize.Level1)
141 {
142 RsFrameReport& fr = RsFrameReport::GetInstance();
143 EXPECT_EQ(fr.setFrameParamFunc_, nullptr);
144 fr.SetFrameParam(0, 0, 0, 0);
145 EXPECT_NE(fr.setFrameParamFunc_, nullptr);
146 fr.SetFrameParam(1, 1, 1, 1);
147 }
148
149 /**
150 * @tc.name: LoadLibrary001
151 * @tc.desc: test
152 * @tc.type:FUNC
153 * @tc.require:
154 */
155 HWTEST_F(RsFrameReportTest, LoadLibrary001, TestSize.Level1)
156 {
157 RsFrameReport& fr = RsFrameReport::GetInstance();
158 fr.CloseLibrary();
159 EXPECT_FALSE(fr.frameSchedSoLoaded_);
160 fr.LoadLibrary();
161 EXPECT_TRUE(fr.frameSchedSoLoaded_);
162 fr.CloseLibrary();
163 }
164
165 /**
166 * @tc.name: LoadSymbol001
167 * @tc.desc: test
168 * @tc.type:FUNC
169 * @tc.require:
170 */
171 HWTEST_F(RsFrameReportTest, LoadSymbol001, TestSize.Level1)
172 {
173 RsFrameReport& fr = RsFrameReport::GetInstance();
174 fr.CloseLibrary();
175 EXPECT_FALSE(fr.frameSchedSoLoaded_);
176 fr.LoadSymbol("function");
177 fr.LoadLibrary();
178 EXPECT_TRUE(fr.frameSchedSoLoaded_);
179 fr.LoadSymbol("function");
180 fr.CloseLibrary();
181 }
182
183 /**
184 * @tc.name: LoadLibrary002
185 * @tc.desc: test
186 * @tc.type:FUNC
187 * @tc.require:
188 */
189 HWTEST_F(RsFrameReportTest, LoadLibrary002, TestSize.Level1)
190 {
191 RsFrameReport& fr = RsFrameReport::GetInstance();
192 fr.frameSchedSoLoaded_ = false;
193 fr.LoadLibrary();
194 fr.frameSchedSoLoaded_ = true;
195 EXPECT_TRUE(fr.LoadLibrary());
196 }
197 } // namespace Rosen
198 } // namespace OHOS
199