| 13 | }; |
| 14 | |
| 15 | TEST_F(QuipWalletTest, BasicDataStructures) { |
| 16 | // Test basic data structures |
| 17 | std::array<uint8_t, 32> vault_id = {}; |
| 18 | vault_id.fill(0x01); |
| 19 | |
| 20 | // Test WinternitzAddress structure |
| 21 | struct WinternitzAddress { |
| 22 | std::array<uint8_t, 32> publicSeed; |
| 23 | std::array<uint8_t, 32> publicKeyHash; |
| 24 | }; |
| 25 | |
| 26 | WinternitzAddress pq_to = {}; |
| 27 | pq_to.publicSeed.fill(0x02); |
| 28 | pq_to.publicKeyHash.fill(0x03); |
| 29 | |
| 30 | // Test Ethereum address format |
| 31 | std::string valid_address = "0x1234567890123456789012345678901234567890"; |
| 32 | |
| 33 | // Test private key format |
| 34 | std::string valid_private_key = |
| 35 | "0x1234567890123456789012345678901234567890123456789012345678901234"; |
| 36 | |
| 37 | // Basic assertions |
| 38 | EXPECT_EQ(vault_id.size(), 32); |
| 39 | EXPECT_EQ(valid_address.length(), 42); |
| 40 | EXPECT_EQ(valid_address.substr(0, 2), "0x"); |
| 41 | EXPECT_EQ(valid_private_key.length(), 66); // 0x + 64 hex chars |
| 42 | EXPECT_EQ(valid_private_key.substr(0, 2), "0x"); |
| 43 | EXPECT_EQ(pq_to.publicSeed.size(), 32); |
| 44 | EXPECT_EQ(pq_to.publicKeyHash.size(), 32); |
| 45 | |
| 46 | // Test hex validation for address |
| 47 | bool valid_hex = true; |
| 48 | for (size_t i = 2; i < valid_address.length(); ++i) { |
| 49 | char c = valid_address[i]; |
| 50 | if (!((c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || |
| 51 | (c >= 'A' && c <= 'F'))) { |
| 52 | valid_hex = false; |
| 53 | break; |
| 54 | } |
| 55 | } |
| 56 | EXPECT_TRUE(valid_hex); |
| 57 | |
| 58 | // Test hex validation for private key |
| 59 | valid_hex = true; |
| 60 | for (size_t i = 2; i < valid_private_key.length(); ++i) { |
| 61 | char c = valid_private_key[i]; |
| 62 | if (!((c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || |
| 63 | (c >= 'A' && c <= 'F'))) { |
| 64 | valid_hex = false; |
| 65 | break; |
| 66 | } |
| 67 | } |
| 68 | EXPECT_TRUE(valid_hex); |
| 69 | |
| 70 | // Test byte values |
| 71 | for (const auto &byte : vault_id) { |
| 72 | EXPECT_EQ(byte, 0x01); |
nothing calls this directly
no outgoing calls
no test coverage detected