Skip to content

Commit 7a9985b

Browse files
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
1 parent ff3e9bd commit 7a9985b

File tree

1 file changed

+83
-0
lines changed

1 file changed

+83
-0
lines changed

Diff for: engine/schema/src/test/java/com/cloud/upgrade/DatabaseUpgradeCheckerTest.java

+83
Original file line numberDiff line numberDiff line change
@@ -223,4 +223,87 @@ public void testCalculateUpgradePathFromLatestDbVersion() {
223223
assertEquals("We should have 1 upgrade step", 1, upgrades.length);
224224
assertTrue(upgrades[0] instanceof NoopDbUpgrade);
225225
}
226+
227+
@Test
228+
public void testCalculateUpgradePathFrom41800toNextSecurityRelease() {
229+
230+
final CloudStackVersion dbVersion = CloudStackVersion.parse("4.18.0.0");
231+
assertNotNull(dbVersion);
232+
233+
final DatabaseUpgradeChecker checker = new DatabaseUpgradeChecker();
234+
final CloudStackVersion currentVersion = checker.getLatestVersion();
235+
assertNotNull(currentVersion);
236+
237+
final DbUpgrade[] upgrades = checker.calculateUpgradePath(dbVersion, currentVersion);
238+
assertNotNull(upgrades);
239+
240+
final CloudStackVersion nextSecurityRelease = CloudStackVersion.parse(currentVersion.getMajorRelease() + "."
241+
+ currentVersion.getMinorRelease() + "."
242+
+ currentVersion.getPatchRelease() + "."
243+
+ (currentVersion.getSecurityRelease() + 1));
244+
assertNotNull(nextSecurityRelease);
245+
246+
final DbUpgrade[] upgradesToNext = checker.calculateUpgradePath(dbVersion, nextSecurityRelease);
247+
assertNotNull(upgradesToNext);
248+
249+
assertEquals(upgrades.length + 1, upgradesToNext.length);
250+
assertTrue(upgradesToNext[upgradesToNext.length - 1] instanceof NoopDbUpgrade);
251+
}
252+
253+
@Test
254+
public void testCalculateUpgradePathFromSecurityReleaseToLatest() {
255+
256+
final CloudStackVersion dbVersion = CloudStackVersion.parse("4.17.2.0"); // a EOL version
257+
assertNotNull(dbVersion);
258+
259+
final CloudStackVersion oldSecurityRelease = CloudStackVersion.parse(dbVersion.getMajorRelease() + "."
260+
+ dbVersion.getMinorRelease() + "."
261+
+ dbVersion.getPatchRelease() + "."
262+
+ (dbVersion.getSecurityRelease() + 100));
263+
assertNotNull(oldSecurityRelease); // fake security release 4.17.2.100
264+
265+
final DatabaseUpgradeChecker checker = new DatabaseUpgradeChecker();
266+
final CloudStackVersion currentVersion = checker.getLatestVersion();
267+
assertNotNull(currentVersion);
268+
269+
final DbUpgrade[] upgrades = checker.calculateUpgradePath(dbVersion, currentVersion);
270+
assertNotNull(upgrades);
271+
272+
final DbUpgrade[] upgradesFromSecurityRelease = checker.calculateUpgradePath(oldSecurityRelease, currentVersion);
273+
assertNotNull(upgradesFromSecurityRelease);
274+
275+
assertEquals("The upgrade paths should be the same", upgrades.length, upgradesFromSecurityRelease.length);
276+
}
277+
278+
@Test
279+
public void testCalculateUpgradePathFromSecurityReleaseToNextSecurityRelease() {
280+
281+
final CloudStackVersion dbVersion = CloudStackVersion.parse("4.17.2.0"); // a EOL version
282+
assertNotNull(dbVersion);
283+
284+
final CloudStackVersion oldSecurityRelease = CloudStackVersion.parse(dbVersion.getMajorRelease() + "."
285+
+ dbVersion.getMinorRelease() + "."
286+
+ dbVersion.getPatchRelease() + "."
287+
+ (dbVersion.getSecurityRelease() + 100));
288+
assertNotNull(oldSecurityRelease); // fake security release 4.17.2.100
289+
290+
final DatabaseUpgradeChecker checker = new DatabaseUpgradeChecker();
291+
final CloudStackVersion currentVersion = checker.getLatestVersion();
292+
assertNotNull(currentVersion);
293+
294+
final CloudStackVersion nextSecurityRelease = CloudStackVersion.parse(currentVersion.getMajorRelease() + "."
295+
+ currentVersion.getMinorRelease() + "."
296+
+ currentVersion.getPatchRelease() + "."
297+
+ (currentVersion.getSecurityRelease() + 1));
298+
assertNotNull(nextSecurityRelease); // fake security release
299+
300+
final DbUpgrade[] upgrades = checker.calculateUpgradePath(dbVersion, currentVersion);
301+
assertNotNull(upgrades);
302+
303+
final DbUpgrade[] upgradesFromSecurityReleaseToNext = checker.calculateUpgradePath(oldSecurityRelease, nextSecurityRelease);
304+
assertNotNull(upgradesFromSecurityReleaseToNext);
305+
306+
assertEquals(upgrades.length + 1, upgradesFromSecurityReleaseToNext.length);
307+
assertTrue(upgradesFromSecurityReleaseToNext[upgradesFromSecurityReleaseToNext.length - 1] instanceof NoopDbUpgrade);
308+
}
226309
}

0 commit comments

Comments
 (0)