Changeset 109300 in vbox
- Timestamp:
- May 16, 2025 12:38:14 PM (8 days ago)
- svn:sync-xref-src-repo-rev:
- 168904
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/testdriver/vbox.py
r109278 r109300 1779 1779 1780 1780 @staticmethod 1781 def versionToTuple(sVer, fIgnoreErrors = False): 1782 """ 1783 Returns a semantic versioning string as a tuple. 1784 """ 1785 try: 1786 # Regular expression taken from semver.org (recommended regular expression for semantic version strings). 1787 # Creative Commons ― CC BY 3.0 1788 # 1789 # Modified to also recognize our semantics: 1790 # - We use "-BETA2" instead of "_BETA2". 1791 oRegEx = re.compile(r'^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:[-|_]((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$'); # pylint: disable=line-too-long 1792 oMatch = oRegEx.search(sVer); 1793 return oMatch.groups(); 1794 except: 1795 if not fIgnoreErrors: 1796 reporter.logXcpt('Handling regex for "%s" failed' % (sVer,)); 1797 return None; 1798 1799 @staticmethod 1800 def compareVersion(sVer1, sVer2, fIgnoreErrors = False): 1801 """ 1802 Compares two version numbers and returns the result. 1803 1804 Takes either strings or version tuples as input. 1805 1806 Returns 0 if both versions match. 1807 Return -1 if version 1 is bigger than version 2. 1808 Return 1 if version 2 is bigger than version 1. 1809 Returns None on error. 1810 """ 1811 assert sVer1 is not None; 1812 assert sVer2 is not None; 1813 try: 1814 tpVer1 = TestDriver.versionToTuple(sVer1, fIgnoreErrors); 1815 if tpVer1 is None: 1816 return None; 1817 tpVer2 = TestDriver.versionToTuple(sVer2, fIgnoreErrors); 1818 if tpVer2 is None: 1819 return None; 1820 if tpVer1 == tpVer2: 1821 return 0; 1822 return 1 if tuple(map(str, tpVer2)) > tuple(map(str, tpVer1)) else -1; 1823 except: 1824 if not fIgnoreErrors: 1825 reporter.logXcpt(); 1826 return None; 1827 1828 @staticmethod 1829 def isVersionEqualOrBigger(sVer1, sVer2, fIgnoreErrors = False): 1781 def isVersionEqualOrBigger(sVer1, sVer2): 1830 1782 """ 1831 1783 Checks whether version 1 is equal or bigger than version 2. … … 1833 1785 Returns True if version 1 is equal or bigger than version 2, False if not. 1834 1786 """ 1835 return not TestDriver.compareVersion(sVer1, sVer2, fIgnoreErrors);1787 return utils.versionCompare(sVer1, sVer2) >= 0; 1836 1788 1837 1789 def getGuestAdditionsVersion(self, oSession, fIgnoreErrors = False):
Note:
See TracChangeset
for help on using the changeset viewer.