Aktualizr
C++ SOTA Client
All Classes Namespaces Files Functions Variables Enumerations Enumerator Pages
ostree_hash_test.cc
1 #include <gtest/gtest.h>
2 
3 #include "ostree_hash.h"
4 
5 using std::string;
6 
7 /* Generate an OSTree hash from a ref string. */
8 TEST(ostree_hash, parse) {
9  string orig = "1f3378927c2d062e40a372414c920219e506afeb8ef25f9ff72a27b792cd093a";
10  EXPECT_NO_THROW(OSTreeHash::Parse(orig));
11  OSTreeHash h = OSTreeHash::Parse(orig);
12  EXPECT_EQ(orig, h.string());
13 }
14 
15 /* Ignore case of OSTree ref strings. */
16 TEST(ostree_hash, parse_mixed_case) {
17  string orig = "1F3378927C2d062e40a372414c920219e506afeb8ef25f9ff72a27b792cd093a";
18  string expected = "1f3378927c2d062e40a372414c920219e506afeb8ef25f9ff72a27b792cd093a";
19  EXPECT_NO_THROW(OSTreeHash::Parse(orig));
20  OSTreeHash h = OSTreeHash::Parse(orig);
21  EXPECT_EQ(expected, h.string());
22 }
23 
24 /* Reject empty OSTree ref strings. */
25 TEST(ostree_hash, parse_empty) { EXPECT_THROW(OSTreeHash::Parse(""), OSTreeCommitParseError); }
26 
27 /* Reject bogus OSTree ref strings. */
28 TEST(ostree_hash, parse_short) { EXPECT_THROW(OSTreeHash::Parse("1F3378927C2d062"), OSTreeCommitParseError); }
29 
30 /* Reject bogus OSTree ref strings. */
31 TEST(ostree_hash, parse_junk) {
32  string str = "1F3378927C2d062e40a372414c920219e506afeb8ef25f9ff72a27b792cd093a";
33  EXPECT_NO_THROW(OSTreeHash::Parse(str));
34  str[5] = 'z';
35  EXPECT_THROW(OSTreeHash::Parse(str), OSTreeCommitParseError);
36 }
37 
38 #ifndef __NO_MAIN__
39 int main(int argc, char **argv) {
40  ::testing::InitGoogleTest(&argc, argv);
41  return RUN_ALL_TESTS();
42 }
43 #endif
OSTreeHash
Definition: ostree_hash.h:10
OSTreeCommitParseError
Definition: ostree_hash.h:30
OSTreeHash::Parse
static OSTreeHash Parse(const std::string &hash)
Parse an OSTree hash from a string.
Definition: ostree_hash.cc:7