• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024-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 <memory>
17 #include <gtest/gtest.h>
18 #include "merkle_tree_extension.h"
19 
20 namespace OHOS {
21 namespace SignatureTools {
22 
23 /*
24  * 测试套件,固定写法
25  */
26 class MerkleTreeExtensionTest : public testing::Test {
27 public:
SetUpTestCase(void)28     static void SetUpTestCase(void) {};
TearDownTestCase()29     static void TearDownTestCase() {};
SetUp()30     void SetUp() {};
TearDown()31     void TearDown() {};
32 };
33 
34 /**
35  * @tc.name: fromByteArray001
36  * @tc.desc: Go to the third branch, the inMerkleTreeSize is not an integer multiple of 4096.
37  * @tc.size: MEDIUM
38  * @tc.type: FUNC
39  * @tc.level Level 1
40  * @tc.require: SR000H63TL
41  */
42 HWTEST_F(MerkleTreeExtensionTest, fromByteArray001, testing::ext::TestSize.Level1)
43 {
44     // 走进第一个分支:inMerkleTreeSize = 4095
45     std::shared_ptr<MerkleTreeExtension> api = std::make_shared<MerkleTreeExtension>();
46 
47     ByteBuffer byteBuffer(8);
48     byteBuffer.PutInt64(4095);
49     byteBuffer.Flip();
50 
51     char readComment[8] = { 0 };
52     byteBuffer.GetData(readComment, 8);
53     std::vector<int8_t> bytes(readComment, readComment + 8);
54 
55     Extension* pExtension = api->FromByteArray(bytes);
56 
57     EXPECT_EQ(pExtension, nullptr);
58 }
59 
60 /**
61  * @tc.name: fromByteArray002
62  * @tc.desc: Go to the third branch, the inMerkleTreeOffset is not an integer multiple of 4096.
63  * @tc.size: MEDIUM
64  * @tc.type: FUNC
65  * @tc.level Level 1
66  * @tc.require: SR000H63TL
67  */
68 HWTEST_F(MerkleTreeExtensionTest, fromByteArray002, testing::ext::TestSize.Level1)
69 {
70     // 走进第二个分支:inMerkleTreeOffset = 4095
71     std::shared_ptr<MerkleTreeExtension> api = std::make_shared<MerkleTreeExtension>();
72 
73     ByteBuffer byteBuffer(16);
74     byteBuffer.PutInt64(4096);
75     byteBuffer.PutInt64(4095); // inMerkleTreeOffset
76     byteBuffer.Flip();
77 
78     char readComment[16] = { 0 };
79     byteBuffer.GetData(readComment, 16);
80     std::vector<int8_t> bytes(readComment, readComment + 16);
81 
82     Extension* pExtension = api->FromByteArray(bytes);
83 
84     EXPECT_EQ(pExtension, nullptr);
85 }
86 
87 /**
88  * @tc.name: fromByteArray003
89  * @tc.desc: Test function of MerkleTreeExtensionTest::fromByteArray003() interface for SUCCESS.
90  * @tc.size: MEDIUM
91  * @tc.type: FUNC
92  * @tc.level Level 1
93  * @tc.require: SR000H63TL
94  */
95 HWTEST_F(MerkleTreeExtensionTest, fromByteArray003, testing::ext::TestSize.Level1)
96 {
97     // 走完
98     std::shared_ptr<MerkleTreeExtension> api = std::make_shared<MerkleTreeExtension>();
99 
100     ByteBuffer byteBuffer(16);
101     byteBuffer.PutInt64(4096);
102     byteBuffer.PutInt64(4096); // inMerkleTreeOffset
103     byteBuffer.Flip();
104 
105     char readComment[16] = { 0 };
106     byteBuffer.GetData(readComment, 16);
107     std::vector<int8_t> bytes(readComment, readComment + 16);
108 
109     Extension* pExtension = api->FromByteArray(bytes);
110 
111     EXPECT_NE(pExtension, nullptr);
112 }
113 
114 /**
115  * @tc.name: getMerkleTreeOffset
116  * @tc.desc: Test function of MerkleTreeExtensionTest::GetMerkleTreeOffset() interface for SUCCESS.
117  * @tc.size: MEDIUM
118  * @tc.type: FUNC
119  * @tc.level Level 1
120  * @tc.require: SR000H63TL
121  */
122 HWTEST_F(MerkleTreeExtensionTest, getMerkleTreeOffset, testing::ext::TestSize.Level1)
123 {
124     std::shared_ptr<MerkleTreeExtension> api = std::make_shared<MerkleTreeExtension>();
125 
126     int64_t merkleTreeOffset = api->GetMerkleTreeOffset();
127 
128     EXPECT_EQ(merkleTreeOffset, 0);
129 }
130 
131 /**
132  * @tc.name: getMerkleTreeSize
133  * @tc.desc: Test function of MerkleTreeExtensionTest::getMerkleTreeSize() interface for SUCCESS.
134  * @tc.size: MEDIUM
135  * @tc.type: FUNC
136  * @tc.level Level 1
137  * @tc.require: SR000H63TL
138  */
139 HWTEST_F(MerkleTreeExtensionTest, getMerkleTreeSize, testing::ext::TestSize.Level1)
140 {
141     std::shared_ptr<MerkleTreeExtension> api = std::make_shared<MerkleTreeExtension>();
142 
143     int64_t merkleTreeSize = api->GetMerkleTreeSize();
144 
145     EXPECT_EQ(merkleTreeSize, 0);
146 }
147 
148 /**
149  * @tc.name: getSize
150  * @tc.desc: Test function of MerkleTreeExtensionTest::getSize() interface for SUCCESS.
151  * @tc.size: MEDIUM
152  * @tc.type: FUNC
153  * @tc.level Level 1
154  * @tc.require: SR000H63TL
155  */
156 HWTEST_F(MerkleTreeExtensionTest, getSize, testing::ext::TestSize.Level1)
157 {
158     std::shared_ptr<MerkleTreeExtension> api = std::make_shared<MerkleTreeExtension>();
159 
160     int32_t merkleTreeExtensionSize = api->GetSize();
161 
162     EXPECT_EQ(merkleTreeExtensionSize, 88);
163 }
164 
165 /**
166  * @tc.name: isType
167  * @tc.desc: Test function of MerkleTreeExtensionTest::isType() interface for SUCCESS.
168  * @tc.size: MEDIUM
169  * @tc.type: FUNC
170  * @tc.level Level 1
171  * @tc.require: SR000H63TL
172  */
173 HWTEST_F(MerkleTreeExtensionTest, isType, testing::ext::TestSize.Level1)
174 {
175     std::shared_ptr<MerkleTreeExtension> api = std::make_shared<MerkleTreeExtension>();
176 
177     int32_t type = 1;
178     bool bIsType = api->IsType(type);
179 
180     EXPECT_EQ(bIsType, true);
181 }
182 
183 /**
184  * @tc.name: setMerkleTreeOffset
185  * @tc.desc: Test function of MerkleTreeExtensionTest::SetMerkleTreeOffset() interface for SUCCESS.
186  * @tc.size: MEDIUM
187  * @tc.type: FUNC
188  * @tc.level Level 1
189  * @tc.require: SR000H63TL
190  */
191 HWTEST_F(MerkleTreeExtensionTest, setMerkleTreeOffset, testing::ext::TestSize.Level1)
192 {
193     std::shared_ptr<MerkleTreeExtension> api = std::make_shared<MerkleTreeExtension>();
194 
195     int64_t offset = 927046;
196     api->SetMerkleTreeOffset(offset);
197 
198     int64_t flag = api->GetMerkleTreeOffset();
199     EXPECT_EQ(flag, offset);
200 }
201 
202 /**
203  * @tc.name: toByteArray
204  * @tc.desc: Test function of MerkleTreeExtensionTest::toByteArray() interface for SUCCESS.
205  * @tc.size: MEDIUM
206  * @tc.type: FUNC
207  * @tc.level Level 1
208  * @tc.require: SR000H63TL
209  */
210 HWTEST_F(MerkleTreeExtensionTest, toByteArray, testing::ext::TestSize.Level1)
211 {
212     std::shared_ptr<MerkleTreeExtension> api = std::make_shared<MerkleTreeExtension>();
213 
214     std::vector<int8_t> byteArray;
215 
216     api->ToByteArray(byteArray);
217 
218     EXPECT_EQ(byteArray.size(), 88);
219 }
220 } // namespace SignatureTools
221 } // namespace OHOS