This is an automated email from the ASF dual-hosted git repository.

rohit pushed a commit to branch 4.18
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/4.18 by this push:
     new 7a9985b42bf upgrade: add unit tests from/to a security release (#8870)
7a9985b42bf is described below

commit 7a9985b42bfdf43efb1a47f02ab58466936472ac
Author: Wei Zhou <[email protected]>
AuthorDate: Thu Apr 4 11:25:29 2024 +0200

    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
---
 .../cloud/upgrade/DatabaseUpgradeCheckerTest.java  | 83 ++++++++++++++++++++++
 1 file changed, 83 insertions(+)

diff --git 
a/engine/schema/src/test/java/com/cloud/upgrade/DatabaseUpgradeCheckerTest.java 
b/engine/schema/src/test/java/com/cloud/upgrade/DatabaseUpgradeCheckerTest.java
index d7ef18a4f32..1a9372f73ea 100644
--- 
a/engine/schema/src/test/java/com/cloud/upgrade/DatabaseUpgradeCheckerTest.java
+++ 
b/engine/schema/src/test/java/com/cloud/upgrade/DatabaseUpgradeCheckerTest.java
@@ -223,4 +223,87 @@ public class DatabaseUpgradeCheckerTest {
         assertEquals("We should have 1 upgrade step", 1, upgrades.length);
         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);
+    }
 }

Reply via email to