1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
#include "msl_verify.hpp"
#include <gtest/gtest.h>
namespace openpower
{
namespace software
{
namespace image
{
class MinimumShipLevelTest : public testing::Test
{
protected:
std::string minShipLevel = "v.2.2";
std::unique_ptr<MinimumShipLevel> minimumShipLevel;
virtual void SetUp()
{
minimumShipLevel = std::make_unique<MinimumShipLevel>(minShipLevel);
}
};
TEST_F(MinimumShipLevelTest, compare)
{
MinimumShipLevel::Version min;
MinimumShipLevel::Version actual;
min = {3, 5, 7};
// actual = min
actual = {3, 5, 7};
EXPECT_EQ(0, minimumShipLevel->compare(actual, min));
// actual < min
actual = {3, 5, 6};
EXPECT_EQ(-1, minimumShipLevel->compare(actual, min));
actual = {3, 4, 7};
EXPECT_EQ(-1, minimumShipLevel->compare(actual, min));
actual = {2, 5, 7};
EXPECT_EQ(-1, minimumShipLevel->compare(actual, min));
// actual > min
actual = {3, 5, 8};
EXPECT_EQ(1, minimumShipLevel->compare(actual, min));
actual = {3, 6, 7};
EXPECT_EQ(1, minimumShipLevel->compare(actual, min));
actual = {4, 5, 7};
EXPECT_EQ(1, minimumShipLevel->compare(actual, min));
}
TEST_F(MinimumShipLevelTest, parse)
{
MinimumShipLevel::Version version;
std::string versionStr;
versionStr = "nomatch-1.2.3-abc";
minimumShipLevel->parse(versionStr, version);
EXPECT_EQ(0, version.major);
EXPECT_EQ(0, version.minor);
EXPECT_EQ(0, version.rev);
versionStr = "xyzformat-v1.2.3-4.5abc";
minimumShipLevel->parse(versionStr, version);
EXPECT_EQ(1, version.major);
EXPECT_EQ(2, version.minor);
EXPECT_EQ(3, version.rev);
versionStr = "xyformat-system-v6.7-abc";
minimumShipLevel->parse(versionStr, version);
EXPECT_EQ(6, version.major);
EXPECT_EQ(7, version.minor);
EXPECT_EQ(0, version.rev);
versionStr = "Vendor-Model-v-4.1.01";
minimumShipLevel->parse(versionStr, version);
EXPECT_EQ(4, version.major);
EXPECT_EQ(1, version.minor);
EXPECT_EQ(1, version.rev);
versionStr = "Vendor-Model-v-4.1-abc";
minimumShipLevel->parse(versionStr, version);
EXPECT_EQ(4, version.major);
EXPECT_EQ(1, version.minor);
EXPECT_EQ(0, version.rev);
}
} // namespace image
} // namespace software
} // namespace openpower
|