Changeset 99293 in vbox for trunk/src/VBox
- Timestamp:
- Apr 5, 2023 9:13:30 AM (2 years ago)
- svn:sync-xref-src-repo-rev:
- 156679
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/testdriver/vbox.py
r99170 r99293 1755 1755 return None; 1756 1756 return self.oBuild.sGuestAdditionsIso; 1757 1758 @staticmethod 1759 def versionToTuple(sVer, fIgnoreErrors = False): # pylint: disable=line-too-long 1760 """ 1761 Returns a semantic versioning string as a tuple. 1762 """ 1763 try: 1764 # Regular expression taken from semver.org (recommended regular expression for semantic version strings). 1765 # Creative Commons ― CC BY 3.0 1766 oRegEx = re.compile('^(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-]+)*))?$'); 1767 oMatch = oRegEx.search(sVer); 1768 return oMatch.groups(); 1769 except: 1770 if not fIgnoreErrors: 1771 reporter.logXcpt('Handling regex for "%s" failed' % (sVer,)); 1772 return None; 1773 1774 @staticmethod 1775 def compareVersion(sVer1, sVer2, fIgnoreErrors = False): 1776 """ 1777 Compares two version numbers and returns the result. 1778 1779 Takes either strings or version tuples as input. 1780 1781 Returns 0 if both versions match. 1782 Return -1 if version 1 is bigger than version 2. 1783 Return 1 if version 2 is bigger than version 1. 1784 Returns None on error. 1785 """ 1786 assert sVer1 is not None; 1787 assert sVer2 is not None; 1788 try: 1789 tpVer1 = TestDriver.versionToTuple(sVer1, fIgnoreErrors); 1790 if tpVer1 is None: 1791 return None; 1792 tpVer2 = TestDriver.versionToTuple(sVer2, fIgnoreErrors); 1793 if tpVer2 is None: 1794 return None; 1795 if tpVer1 == tpVer2: 1796 return 0; 1797 return 1 if tuple(map(str, tpVer2)) > tuple(map(str, tpVer1)) else -1; 1798 except: 1799 if not fIgnoreErrors: 1800 reporter.logXcpt(); 1801 return None; 1802 1803 @staticmethod 1804 def isVersionEqualOrBigger(sVer1, sVer2, fIgnoreErrors = False): 1805 """ 1806 Checks whether version 1 is equal or bigger than version 2. 1807 1808 Returns True if version 1 is equal or bigger than version 2, False if not. 1809 """ 1810 return False if TestDriver.compareVersion(sVer1, sVer2, fIgnoreErrors) is 1 else True; 1811 1812 def getGuestAdditionsVersion(self, oSession, fIgnoreErrors = False): 1813 """ 1814 Returns the installed Guest Additions version. 1815 1816 Returns version as a string (e.g. "7.0.6-beta2-whatever"), or None if not found / on error. 1817 """ 1818 assert oSession is not None; 1819 try: 1820 return oSession.o.console.guest.additionsVersion; 1821 except: 1822 if not fIgnoreErrors: 1823 reporter.errorXcpt('Getting the Guest Additions version failed'); 1824 return None; 1757 1825 1758 1826 #
Note:
See TracChangeset
for help on using the changeset viewer.