Changeset 84668 in vbox for trunk/src/VBox/ValidationKit/tests/additions
- Timestamp:
- Jun 3, 2020 3:43:31 PM (5 years ago)
- svn:sync-xref-src-repo-rev:
- 138425
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/tests/additions/tdAddBasic1.py
r84597 r84668 57 57 58 58 59 60 class tdAddBasicConsoleCallbacks(vbox.ConsoleEventHandlerBase):61 """62 For catching the Guest Additions change state events.63 """64 def __init__(self, dArgs):65 oTstDrv = dArgs['oTstDrv'];66 oVBoxMgr = dArgs['oVBoxMgr']; _ = oVBoxMgr;67 oGuest = dArgs['oGuest'];68 69 vbox.ConsoleEventHandlerBase.__init__(self, dArgs, 'tdAddBasic1');70 self.oTstDrv = oTstDrv;71 self.oGuest = oGuest;72 73 def handleEvent(self, oEvt):74 try:75 oEvtBase = self.oVBoxMgr.queryInterface(oEvt, 'IEvent');76 eType = oEvtBase.type;77 except:78 reporter.logXcpt();79 return None;80 if eType == vboxcon.VBoxEventType_OnAdditionsStateChanged:81 return self.onAdditionsStateChanged();82 return None;83 84 def onAdditionsStateChanged(self):85 reporter.log('onAdditionsStateChange');86 self.oTstDrv.fGAStatusCallbackFired = True;87 self.oTstDrv.eGAStatusCallbackRunlevel = self.oGuest.additionsRunLevel;88 self.oVBoxMgr.interruptWaitEvents();89 return None;90 91 59 class tdAddBasic1(vbox.TestDriver): # pylint: disable=too-many-instance-attributes 92 60 """ … … 108 76 self.addSubTestDriver(SubTstDrvAddGuestCtrl(self)); 109 77 self.addSubTestDriver(SubTstDrvAddSharedFolders1(self)); 110 111 self.fGAStatusCallbackFired = False;112 self.eGAStatusCallbackRunlevel = 0;113 78 114 79 # … … 291 256 return fRc; 292 257 293 def waitForGuestAdditionsRunLevel(self, oSession, oGuest, cMsTimeout, eRunLevel):294 """295 Waits for the Guest Additions to reach a specific run level.296 297 Returns success status.298 """299 # No need to wait as we already reached the run level?300 eRunLevelCur = oGuest.additionsRunLevel;301 if eRunLevelCur == eRunLevel:302 reporter.log('Already reached run level %s' % eRunLevel);303 return True;304 305 reporter.log('Waiting for Guest Additions to reach run level %s with %dms (current: %s) ...' %306 (eRunLevel, cMsTimeout, eRunLevelCur));307 308 oConsoleCallbacks = oSession.registerDerivedEventHandler(tdAddBasicConsoleCallbacks, \309 {'oTstDrv':self, 'oGuest':oGuest, });310 fRc = False;311 if oConsoleCallbacks is not None:312 tsStart = base.timestampMilli();313 while base.timestampMilli() - tsStart < cMsTimeout:314 self.sleep(1); # Do some busy waiting.315 if self.fGAStatusCallbackFired:316 reporter.log('Reached new run level %s after %dms' %317 (self.eGAStatusCallbackRunlevel, base.timestampMilli() - tsStart));318 if eRunLevel == self.eGAStatusCallbackRunlevel:319 fRc = True;320 break;321 self.fGAStatusCallbackFired = False;322 if fRc:323 reporter.log('Final Guest Additions run level reached after %dms' % (base.timestampMilli() - tsStart));324 else:325 reporter.error('Guest Additions run level not reached');326 327 # cleanup.328 oConsoleCallbacks.unregister();329 else:330 reporter.error('Registering derived event handler failed');331 332 if not fRc:333 reporter.log('Waiting for Guest Additions to reach run level %s failed' % (eRunLevel));334 return fRc;335 336 258 def testInstallAdditions(self, oSession, oTxsSession, oTestVm): 337 259 """ … … 539 461 Do run level tests. 540 462 """ 463 464 _ = oGuest; 465 541 466 if oTestVm.isWindows(): 542 467 if oTestVm.isLoggedOntoDesktop(): … … 548 473 eExpectedRunLevel = vboxcon.AdditionsRunLevelType_Userland; 549 474 550 return self.waitForG uestAdditionsRunLevel(oSession, oGuest, 5 * 60 * 1000, eExpectedRunLevel);475 return self.waitForGAs(oSession, aenmWaitForRunLevels = [ eExpectedRunLevel ]); 551 476 552 477 def testIGuest_additionsVersion(self, oGuest):
Note:
See TracChangeset
for help on using the changeset viewer.