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) {};
SetUp(void)27 void SetUp(void) {};
TearDown(void)28 void TearDown(void) {};
29 };
30
TestHvbDmVerityFinal(void)31 static int TestHvbDmVerityFinal(void)
32 {
33 HvbDmVerityFinal();
34 return 0;
35 }
36
37 HWTEST_F(DmVerifyUnitTest, HvbDmVerityinit_001, TestSize.Level0)
38 {
39 int ret;
40 FstabItem fstabitem = {(char *)"deviceName", (char *)"mountPoint",
41 (char *)"fsType", (char *)"mountOptions", 1, nullptr};
42 Fstab fstab = {&fstabitem};
43
44 ret = HvbDmVerityinit(&fstab);
45 EXPECT_EQ(ret, 0);
46
47 setenv("SWTYPE_VALUE", "Test", 1);
48 ret = HvbDmVerityinit(&fstab);
49 EXPECT_EQ(ret, 0);
50
51 setenv("ENABLE_VALUE", "false", 1);
52 ret = HvbDmVerityinit(&fstab);
53 EXPECT_EQ(ret, 0);
54 setenv("ENABLE_VALUE", "FALSE", 1);
55 ret = HvbDmVerityinit(&fstab);
56 EXPECT_EQ(ret, 0);
57
58 setenv("ENABLE_VALUE", "orange", 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 unsetenv("SWTYPE_VALUE");
67 unsetenv("ENABLE_VALUE");
68 }
69
70 HWTEST_F(DmVerifyUnitTest, HvbDmVerityinit_002, TestSize.Level0)
71 {
72 int ret;
73 FstabItem fstabitem = {(char *)"deviceName", (char *)"mountPoint",
74 (char *)"fsType", (char *)"mountOptions", 1, nullptr};
75 Fstab fstab = {&fstabitem};
76
77 ret = HvbDmVerityinit(&fstab);
78 EXPECT_EQ(ret, 0);
79
80 setenv("SWTYPE_VALUE", "factory", 1);
81 ret = HvbDmVerityinit(&fstab);
82 EXPECT_EQ(ret, 0);
83
84 fstabitem.fsManagerFlags = 0x00000010;
85 ret = HvbDmVerityinit(&fstab);
86 EXPECT_EQ(ret, -1);
87
88 setenv("INIT_VALUE", "on", 1);
89 ret = HvbDmVerityinit(&fstab);
90 EXPECT_EQ(ret, 0);
91
92 unsetenv("SWTYPE_VALUE");
93 unsetenv("INIT_VALUE");
94 }
95
96 HWTEST_F(DmVerifyUnitTest, HvbDmVeritySetUp_001, TestSize.Level0)
97 {
98 int ret;
99 FstabItem fstabitem = {(char *)"deviceName", (char *)"mountPoint",
100 (char *)"fsType", (char *)"mountOptions", 1, nullptr};
101
102 ret = HvbDmVeritySetUp(&fstabitem);
103 EXPECT_EQ(ret, 0);
104
105 setenv("SWTYPE_VALUE", "factory", 1);
106 ret = HvbDmVeritySetUp(nullptr);
107 EXPECT_EQ(ret, -1);
108 fstabitem.fsManagerFlags = 0x00000009;
109 ret = HvbDmVeritySetUp(&fstabitem);
110 EXPECT_EQ(ret, 0);
111
112 fstabitem.fsManagerFlags = 0x00000010;
113 ret = HvbDmVeritySetUp(&fstabitem);
114 EXPECT_EQ(ret, -1);
115 fstabitem.fsManagerFlags = 0x00000018;
116 ret = HvbDmVeritySetUp(&fstabitem);
117 EXPECT_EQ(ret, -1);
118
119 setenv("HASH_VALUE", "on", 1);
120 ret = HvbDmVeritySetUp(&fstabitem);
121 EXPECT_EQ(ret, 0);
122
123 unsetenv("SWTYPE_VALUE");
124 unsetenv("HASH_VALUE");
125 }
126
127 HWTEST_F(DmVerifyUnitTest, HvbDmVerityFinal_001, TestSize.Level0)
128 {
129 int ret = TestHvbDmVerityFinal();
130 EXPECT_EQ(ret, 0);
131
132 setenv("SWTYPE_VALUE", "factory", 1);
133 ret = TestHvbDmVerityFinal();
134 EXPECT_EQ(ret, 0);
135
136 setenv("FINAL_VALUE", "on", 1);
137 ret = TestHvbDmVerityFinal();
138 EXPECT_EQ(ret, 0);
139
140 unsetenv("SWTYPE_VALUE");
141 unsetenv("FINAL_VALUE");
142 }
143 } // namespace init_ut