• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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