Lei YU | b150134 | 2019-03-01 16:23:29 +0800 | [diff] [blame] | 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 | } |