1 /*
2 * Copyright (c) 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, 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 <gtest/gtest.h>
17 #include "dm_verity.h"
18
19 using namespace testing::ext;
20 using namespace std;
21
22 namespace init_ut {
23 class DmVerifyUnitTest : public testing::Test {
24 public:
SetUpTestCase(void)25 static void SetUpTestCase(void) {};
TearDownTestCase(void)26 static void TearDownTestCase(void) {};
27 };
28
TestHvbDmVerityFinal(void)29 static int TestHvbDmVerityFinal(void)
30 {
31 HvbDmVerityFinal();
32 return 0;
33 }
34
35 HWTEST_F(DmVerifyUnitTest, HvbDmVerityinit_001, TestSize.Level0)
36 {
37 int ret;
38 FstabItem fstabitem;
39 char testStr[10] = "testStr";
40 fstabitem.deviceName = testStr;
41 fstabitem.mountPoint = testStr;
42 fstabitem.fsType = testStr;
43 fstabitem.mountOptions = testStr;
44 fstabitem.fsManagerFlags = 1;
45 fstabitem.next = nullptr;
46 Fstab fstab = {&fstabitem};
47
48 ret = HvbDmVerityinit(&fstab);
49 EXPECT_EQ(ret, 0);
50
51 setenv("SWTYPE_VALUE", "Test", 1);
52 ret = HvbDmVerityinit(&fstab);
53 EXPECT_EQ(ret, 0);
54
55 setenv("ENABLE_VALUE", "false", 1);
56 ret = HvbDmVerityinit(&fstab);
57 EXPECT_EQ(ret, 0);
58 setenv("ENABLE_VALUE", "FALSE", 1);
59 ret = HvbDmVerityinit(&fstab);
60 EXPECT_EQ(ret, 0);
61
62 setenv("ENABLE_VALUE", "orange", 1);
63 ret = HvbDmVerityinit(&fstab);
64 EXPECT_EQ(ret, 0);
65
66 setenv("ENABLE_VALUE", "ORANGE", 1);
67 ret = HvbDmVerityinit(&fstab);
68 EXPECT_EQ(ret, 0);
69
70 unsetenv("SWTYPE_VALUE");
71 unsetenv("ENABLE_VALUE");
72 }
73
74 HWTEST_F(DmVerifyUnitTest, HvbDmVerityinit_002, TestSize.Level0)
75 {
76 int ret;
77 FstabItem fstabitem;
78 char testStr[10] = "testStr";
79 fstabitem.deviceName = testStr;
80 fstabitem.mountPoint = testStr;
81 fstabitem.fsType = testStr;
82 fstabitem.mountOptions = testStr;
83 fstabitem.fsManagerFlags = 1;
84 fstabitem.next = nullptr;
85 Fstab fstab = {&fstabitem};
86
87 ret = HvbDmVerityinit(&fstab);
88 EXPECT_EQ(ret, 0);
89
90 setenv("SWTYPE_VALUE", "factory", 1);
91 ret = HvbDmVerityinit(&fstab);
92 EXPECT_EQ(ret, 0);
93
94 fstabitem.fsManagerFlags = 0x00000010;
95 ret = HvbDmVerityinit(&fstab);
96 EXPECT_EQ(ret, -1);
97
98 setenv("INIT_VALUE", "on", 1);
99 ret = HvbDmVerityinit(&fstab);
100 EXPECT_EQ(ret, 0);
101
102 unsetenv("SWTYPE_VALUE");
103 unsetenv("INIT_VALUE");
104 }
105
106 HWTEST_F(DmVerifyUnitTest, HvbDmVeritySetUp_001, TestSize.Level0)
107 {
108 int ret;
109 FstabItem fstabitem;
110 char testStr[10] = "testStr";
111 fstabitem.deviceName = testStr;
112 fstabitem.mountPoint = testStr;
113 fstabitem.fsType = testStr;
114 fstabitem.mountOptions = testStr;
115 fstabitem.fsManagerFlags = 1;
116 fstabitem.next = nullptr;
117
118 ret = HvbDmVeritySetUp(&fstabitem);
119 EXPECT_EQ(ret, 0);
120
121 setenv("SWTYPE_VALUE", "factory", 1);
122 ret = HvbDmVeritySetUp(nullptr);
123 EXPECT_EQ(ret, -1);
124 fstabitem.fsManagerFlags = 0x00000009;
125 ret = HvbDmVeritySetUp(&fstabitem);
126 EXPECT_EQ(ret, 0);
127
128 fstabitem.fsManagerFlags = 0x00000010;
129 ret = HvbDmVeritySetUp(&fstabitem);
130 EXPECT_EQ(ret, -1);
131 fstabitem.fsManagerFlags = 0x00000018;
132 ret = HvbDmVeritySetUp(&fstabitem);
133 EXPECT_EQ(ret, -1);
134
135 setenv("HASH_VALUE", "on", 1);
136 ret = HvbDmVeritySetUp(&fstabitem);
137 EXPECT_EQ(ret, 0);
138
139 unsetenv("SWTYPE_VALUE");
140 unsetenv("HASH_VALUE");
141 }
142
143 HWTEST_F(DmVerifyUnitTest, HvbDmVerityFinal_001, TestSize.Level0)
144 {
145 int ret = TestHvbDmVerityFinal();
146 EXPECT_EQ(ret, 0);
147
148 setenv("SWTYPE_VALUE", "factory", 1);
149 ret = TestHvbDmVerityFinal();
150 EXPECT_EQ(ret, 0);
151
152 setenv("FINAL_VALUE", "on", 1);
153 ret = TestHvbDmVerityFinal();
154 EXPECT_EQ(ret, 0);
155
156 unsetenv("SWTYPE_VALUE");
157 unsetenv("FINAL_VALUE");
158 }
159 } // namespace init_ut