VirtualBox

Ignore:
Timestamp:
Jun 3, 2020 3:43:31 PM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
138425
Message:

Validation Kit/tdAddGuestCtrl.py: Trying to fix the GA runlevel tests.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/tests/additions/tdAddBasic1.py

    r84597 r84668  
    5757
    5858
    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 
    9159class tdAddBasic1(vbox.TestDriver):                                         # pylint: disable=too-many-instance-attributes
    9260    """
     
    10876        self.addSubTestDriver(SubTstDrvAddGuestCtrl(self));
    10977        self.addSubTestDriver(SubTstDrvAddSharedFolders1(self));
    110 
    111         self.fGAStatusCallbackFired    = False;
    112         self.eGAStatusCallbackRunlevel = 0;
    11378
    11479    #
     
    291256        return fRc;
    292257
    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 
    336258    def testInstallAdditions(self, oSession, oTxsSession, oTestVm):
    337259        """
     
    539461        Do run level tests.
    540462        """
     463
     464        _ = oGuest;
     465
    541466        if oTestVm.isWindows():
    542467            if oTestVm.isLoggedOntoDesktop():
     
    548473            eExpectedRunLevel = vboxcon.AdditionsRunLevelType_Userland;
    549474
    550         return self.waitForGuestAdditionsRunLevel(oSession, oGuest, 5 * 60 * 1000, eExpectedRunLevel);
     475        return self.waitForGAs(oSession, aenmWaitForRunLevels = [ eExpectedRunLevel ]);
    551476
    552477    def testIGuest_additionsVersion(self, oGuest):
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette