#include "version.hpp" #include #include using namespace openpower::software::updater; using EVP_MD_CTX_Ptr = std::unique_ptr; /** @brief Make sure we correctly get the Id from getId()*/ TEST(VersionTest, TestGetId) { auto version = "test-id"; unsigned char digest[EVP_MAX_MD_SIZE]; unsigned int digest_count = 0; EVP_MD_CTX_Ptr ctx(EVP_MD_CTX_new(), &::EVP_MD_CTX_free); EVP_DigestInit(ctx.get(), EVP_sha512()); EVP_DigestUpdate(ctx.get(), version, strlen(version)); EVP_DigestFinal(ctx.get(), digest, &digest_count); char mdString[EVP_MAX_MD_SIZE * 2 + 1]; for (decltype(digest_count) i = 0; i < digest_count; i++) { snprintf(&mdString[i * 2], 3, "%02x", (unsigned int)digest[i]); } std::string hexId = std::string(mdString); hexId = hexId.substr(0, 8); EXPECT_EQ(Version::getId(version), hexId); } TEST(VersionTest, GetVersions) { constexpr auto versionString = "open-power-romulus-v2.2-rc1-48-g268344f-dirty\n" "\tbuildroot-2018.11.1-7-g5d7cc8c\n" "\tskiboot-v6.2\n" "\thostboot-3f1f218-pea87ca7\n" "\tocc-12c8088\n" "\tlinux-4.19.13-openpower1-p8031295\n" "\tpetitboot-1.9.2\n" "\tmachine-xml-7410460\n" "\thostboot-binaries-hw121518a.930\n" "\tcapp-ucode-p9-dd2-v4\n" "\tsbe-cf61dc3\n" "\thcode-hw123119a.930"; const auto& [version, extendedVersion] = Version::getVersions(versionString); EXPECT_EQ(version, "open-power-romulus-v2.2-rc1-48-g268344f-dirty"); EXPECT_EQ(extendedVersion, "buildroot-2018.11.1-7-g5d7cc8c," "skiboot-v6.2," "hostboot-3f1f218-pea87ca7," "occ-12c8088," "linux-4.19.13-openpower1-p8031295," "petitboot-1.9.2," "machine-xml-7410460," "hostboot-binaries-hw121518a.930," "capp-ucode-p9-dd2-v4," "sbe-cf61dc3," "hcode-hw123119a.930"); }