upgrade: add unit tests from/to a security release (#8870)

* upgrade: add unit tests from/to a security release

* upgrade: add unit test from a old security release to a new security release
This commit is contained in:
Wei Zhou 2024-04-04 11:25:29 +02:00 committed by GitHub
parent ff3e9bd821
commit 7a9985b42b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -223,4 +223,87 @@ public class DatabaseUpgradeCheckerTest {
assertEquals("We should have 1 upgrade step", 1, upgrades.length); assertEquals("We should have 1 upgrade step", 1, upgrades.length);
assertTrue(upgrades[0] instanceof NoopDbUpgrade); assertTrue(upgrades[0] instanceof NoopDbUpgrade);
} }
@Test
public void testCalculateUpgradePathFrom41800toNextSecurityRelease() {
final CloudStackVersion dbVersion = CloudStackVersion.parse("4.18.0.0");
assertNotNull(dbVersion);
final DatabaseUpgradeChecker checker = new DatabaseUpgradeChecker();
final CloudStackVersion currentVersion = checker.getLatestVersion();
assertNotNull(currentVersion);
final DbUpgrade[] upgrades = checker.calculateUpgradePath(dbVersion, currentVersion);
assertNotNull(upgrades);
final CloudStackVersion nextSecurityRelease = CloudStackVersion.parse(currentVersion.getMajorRelease() + "."
+ currentVersion.getMinorRelease() + "."
+ currentVersion.getPatchRelease() + "."
+ (currentVersion.getSecurityRelease() + 1));
assertNotNull(nextSecurityRelease);
final DbUpgrade[] upgradesToNext = checker.calculateUpgradePath(dbVersion, nextSecurityRelease);
assertNotNull(upgradesToNext);
assertEquals(upgrades.length + 1, upgradesToNext.length);
assertTrue(upgradesToNext[upgradesToNext.length - 1] instanceof NoopDbUpgrade);
}
@Test
public void testCalculateUpgradePathFromSecurityReleaseToLatest() {
final CloudStackVersion dbVersion = CloudStackVersion.parse("4.17.2.0"); // a EOL version
assertNotNull(dbVersion);
final CloudStackVersion oldSecurityRelease = CloudStackVersion.parse(dbVersion.getMajorRelease() + "."
+ dbVersion.getMinorRelease() + "."
+ dbVersion.getPatchRelease() + "."
+ (dbVersion.getSecurityRelease() + 100));
assertNotNull(oldSecurityRelease); // fake security release 4.17.2.100
final DatabaseUpgradeChecker checker = new DatabaseUpgradeChecker();
final CloudStackVersion currentVersion = checker.getLatestVersion();
assertNotNull(currentVersion);
final DbUpgrade[] upgrades = checker.calculateUpgradePath(dbVersion, currentVersion);
assertNotNull(upgrades);
final DbUpgrade[] upgradesFromSecurityRelease = checker.calculateUpgradePath(oldSecurityRelease, currentVersion);
assertNotNull(upgradesFromSecurityRelease);
assertEquals("The upgrade paths should be the same", upgrades.length, upgradesFromSecurityRelease.length);
}
@Test
public void testCalculateUpgradePathFromSecurityReleaseToNextSecurityRelease() {
final CloudStackVersion dbVersion = CloudStackVersion.parse("4.17.2.0"); // a EOL version
assertNotNull(dbVersion);
final CloudStackVersion oldSecurityRelease = CloudStackVersion.parse(dbVersion.getMajorRelease() + "."
+ dbVersion.getMinorRelease() + "."
+ dbVersion.getPatchRelease() + "."
+ (dbVersion.getSecurityRelease() + 100));
assertNotNull(oldSecurityRelease); // fake security release 4.17.2.100
final DatabaseUpgradeChecker checker = new DatabaseUpgradeChecker();
final CloudStackVersion currentVersion = checker.getLatestVersion();
assertNotNull(currentVersion);
final CloudStackVersion nextSecurityRelease = CloudStackVersion.parse(currentVersion.getMajorRelease() + "."
+ currentVersion.getMinorRelease() + "."
+ currentVersion.getPatchRelease() + "."
+ (currentVersion.getSecurityRelease() + 1));
assertNotNull(nextSecurityRelease); // fake security release
final DbUpgrade[] upgrades = checker.calculateUpgradePath(dbVersion, currentVersion);
assertNotNull(upgrades);
final DbUpgrade[] upgradesFromSecurityReleaseToNext = checker.calculateUpgradePath(oldSecurityRelease, nextSecurityRelease);
assertNotNull(upgradesFromSecurityReleaseToNext);
assertEquals(upgrades.length + 1, upgradesFromSecurityReleaseToNext.length);
assertTrue(upgradesFromSecurityReleaseToNext[upgradesFromSecurityReleaseToNext.length - 1] instanceof NoopDbUpgrade);
}
} }