1 #include "version.hpp"
2 
3 #include <openssl/sha.h>
4 
5 #include <gtest/gtest.h>
6 
7 using namespace openpower::software::updater;
8 
9 /** @brief Make sure we correctly get the Id from getId()*/
10 TEST(VersionTest, TestGetId)
11 {
12     auto version = "test-id";
13     unsigned char digest[SHA512_DIGEST_LENGTH];
14     SHA512_CTX ctx;
15     SHA512_Init(&ctx);
16     SHA512_Update(&ctx, version, strlen(version));
17     SHA512_Final(digest, &ctx);
18     char mdString[SHA512_DIGEST_LENGTH * 2 + 1];
19     for (int i = 0; i < SHA512_DIGEST_LENGTH; i++)
20     {
21         snprintf(&mdString[i * 2], 3, "%02x", (unsigned int)digest[i]);
22     }
23     std::string hexId = std::string(mdString);
24     hexId = hexId.substr(0, 8);
25     EXPECT_EQ(Version::getId(version), hexId);
26 }
27 
28 TEST(VersionTest, GetVersions)
29 {
30     constexpr auto versionString =
31         "open-power-romulus-v2.2-rc1-48-g268344f-dirty\n"
32         "\tbuildroot-2018.11.1-7-g5d7cc8c\n"
33         "\tskiboot-v6.2\n"
34         "\thostboot-3f1f218-pea87ca7\n"
35         "\tocc-12c8088\n"
36         "\tlinux-4.19.13-openpower1-p8031295\n"
37         "\tpetitboot-1.9.2\n"
38         "\tmachine-xml-7410460\n"
39         "\thostboot-binaries-hw121518a.930\n"
40         "\tcapp-ucode-p9-dd2-v4\n"
41         "\tsbe-cf61dc3\n"
42         "\thcode-hw123119a.930";
43 
44     const auto& [version, extendedVersion] =
45         Version::getVersions(versionString);
46     EXPECT_EQ(version, "open-power-romulus-v2.2-rc1-48-g268344f-dirty");
47     EXPECT_EQ(extendedVersion, "buildroot-2018.11.1-7-g5d7cc8c,"
48                                "skiboot-v6.2,"
49                                "hostboot-3f1f218-pea87ca7,"
50                                "occ-12c8088,"
51                                "linux-4.19.13-openpower1-p8031295,"
52                                "petitboot-1.9.2,"
53                                "machine-xml-7410460,"
54                                "hostboot-binaries-hw121518a.930,"
55                                "capp-ucode-p9-dd2-v4,"
56                                "sbe-cf61dc3,"
57                                "hcode-hw123119a.930");
58 }
59