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