Aktualizr
C++ SOTA Client
All Classes Namespaces Files Functions Variables Enumerations Enumerator Pages
hash_test.cc
1 #include <gtest/gtest.h>
2 
3 #include "crypto.h"
4 #include "logging/logging.h"
5 
6 TEST(Hash, EncodeDecode) {
7  std::vector<Hash> hashes = {{Hash::Type::kSha256, "abcd"}, {Hash::Type::kSha512, "defg"}};
8 
9  std::string encoded = Hash::encodeVector(hashes);
10  std::vector<Hash> decoded = Hash::decodeVector(encoded);
11 
12  EXPECT_EQ(hashes, decoded);
13 }
14 
15 TEST(Hash, DecodeBad) {
16  std::string bad1 = ":";
17  EXPECT_EQ(Hash::decodeVector(bad1), std::vector<Hash>{});
18 
19  std::string bad2 = ":abcd;sha256:12";
20  EXPECT_EQ(Hash::decodeVector(bad2), std::vector<Hash>{Hash(Hash::Type::kSha256, "12")});
21 
22  std::string bad3 = "sha256;";
23  EXPECT_EQ(Hash::decodeVector(bad3), std::vector<Hash>{});
24 
25  std::string bad4 = "sha256:;";
26  EXPECT_EQ(Hash::decodeVector(bad4), std::vector<Hash>{});
27 }
28 
29 #ifndef __NO_MAIN__
30 int main(int argc, char** argv) {
31  ::testing::InitGoogleTest(&argc, argv);
32  logger_set_threshold(boost::log::trivial::trace);
33  return RUN_ALL_TESTS();
34 }
35 #endif
Hash
The Hash class The hash of a file or Uptane metadata.
Definition: types.h:159