1 /*
2 * Copyright (c) 2022 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 "program_unittest.h"
17 #include "program.h"
18 #include "horizontal_blur_filter.h"
19 #include "vertical_blur_filter.h"
20 #include "saturation_filter.h"
21
22 using namespace testing;
23 using namespace testing::ext;
24
25 namespace OHOS {
26 namespace Rosen {
27 /**
28 * @tc.name: Compile001
29 * @tc.desc: Compile the program based on the input string
30 * @tc.type: FUNC
31 * @tc.require:
32 * @tc.author:
33 */
HWTEST_F(ProgramUnittest, Compile001, TestSize.Level1)34 HWTEST_F(ProgramUnittest, Compile001, TestSize.Level1)
35 {
36 GTEST_LOG_(INFO) << "ProgramUnittest Compile001 start";
37 /**
38 * @tc.steps: step1. Create a Program pointer
39 */
40 auto program = std::make_shared<Program>();
41 bool testResult = program != nullptr;
42 EXPECT_TRUE(testResult);
43 /**
44 * @tc.steps: step2. Call Compile to compile the program
45 */
46 auto horizon = std::make_shared<HorizontalBlurFilter>();
47 program->Compile(horizon->GetVertexShader(), horizon->GetFragmentShader());
48 }
49
50 /**
51 * @tc.name: Compile002
52 * @tc.desc: Compile the program based on the input string
53 * @tc.type: FUNC
54 * @tc.require:
55 * @tc.author:
56 */
HWTEST_F(ProgramUnittest, Compile002, TestSize.Level1)57 HWTEST_F(ProgramUnittest, Compile002, TestSize.Level1)
58 {
59 GTEST_LOG_(INFO) << "ProgramUnittest Compile002 start";
60 /**
61 * @tc.steps: step1. Create a Program pointer
62 */
63 auto program = std::make_shared<Program>();
64 bool testResult = program != nullptr;
65 EXPECT_TRUE(testResult);
66 /**
67 * @tc.steps: step2. Call Compile to compile the program
68 */
69 auto vertical = std::make_shared<VerticalBlurFilter>();
70 program->Compile(vertical->GetVertexShader(), vertical->GetFragmentShader());
71 }
72
73 /**
74 * @tc.name: Compile003
75 * @tc.desc: Compile the program based on the input string
76 * @tc.type: FUNC
77 * @tc.require:
78 * @tc.author:
79 */
HWTEST_F(ProgramUnittest, Compile003, TestSize.Level1)80 HWTEST_F(ProgramUnittest, Compile003, TestSize.Level1)
81 {
82 GTEST_LOG_(INFO) << "ProgramUnittest Compile003 start";
83 /**
84 * @tc.steps: step1. Create a Program pointer
85 */
86 auto program = std::make_shared<Program>();
87 bool testResult = program != nullptr;
88 EXPECT_TRUE(testResult);
89 /**
90 * @tc.steps: step2. Call Compile to compile the program
91 */
92 auto saturation = std::make_shared<SaturationFilter>();
93 program->Compile(saturation->GetVertexShader(), saturation->GetFragmentShader());
94 }
95
96 /**
97 * @tc.name: UseProgram001
98 * @tc.desc: Use the compiled program
99 * @tc.type: FUNC
100 * @tc.require:
101 * @tc.author:
102 */
HWTEST_F(ProgramUnittest, UseProgram001, TestSize.Level1)103 HWTEST_F(ProgramUnittest, UseProgram001, TestSize.Level1)
104 {
105 GTEST_LOG_(INFO) << "ProgramUnittest UseProgram001 start";
106 /**
107 * @tc.steps: step1. Create a Program pointer
108 */
109 auto program = std::make_shared<Program>();
110 bool testResult = program != nullptr;
111 EXPECT_TRUE(testResult);
112 /**
113 * @tc.steps: step2. Call UseProgram to use the program
114 */
115 auto saturation = std::make_shared<SaturationFilter>();
116 program->Compile(saturation->GetVertexShader(), saturation->GetFragmentShader());
117 EXPECT_TRUE(program->programID_ >= 0);
118 program->UseProgram();
119 }
120 } // namespace Rosen
121 } // namespace OHOS
122