VirtualBox

Ignore:
Timestamp:
Jan 30, 2018 5:46:55 PM (7 years ago)
Author:
vboxsync
Message:

ValidationKit: Turn all API tests into sub-tests which can still be run separately. tdApi1.py runs them all in one go.

Location:
trunk/src/VBox/ValidationKit/tests/api
Files:
3 edited
1 copied
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/tests/api/tdApi1.py

    r70788 r70812  
    44
    55"""
    6 VirtualBox Validation Kit - Medium and Snapshot Tree Depth Test #1
     6VirtualBox Validation Kit - API Test wrapper #1 combining all API sub-tests
    77"""
    88
     
    4242
    4343# Validation Kit imports.
    44 from testdriver import reporter
    4544from testdriver import vbox
    46 from testdriver import vboxcon
    4745
    4846
    49 class tdTreeDepth1(vbox.TestDriver):
     47class tdApi1(vbox.TestDriver):
    5048    """
    51     Medium and Snapshot Tree Depth Test #1.
     49    API Test wrapper #1.
    5250    """
    5351
    54     def __init__(self):
     52    def __init__(self, aoSubTestDrivers = None):
    5553        vbox.TestDriver.__init__(self)
    5654        self.asRsrcs            = None
    57 
    5855
    5956    #
     
    7168    def actionExecute(self):
    7269        """
    73         Execute the testcase.
     70        Execute the testcase, i.e. all sub-tests.
    7471        """
    75         return  self.testMediumTreeDepth() \
    76             and self.testSnapshotTreeDepth()
    77 
    78     #
    79     # Test execution helpers.
    80     #
    81 
    82     def testMediumTreeDepth(self):
    83         """
    84         Test medium tree depth.
    85         """
    86         reporter.testStart('mediumTreeDepth')
    87 
    88         try:
    89             oVM = self.createTestVM('test-medium', 1, None, 4)
    90             assert oVM is not None
    91 
    92             # create chain with 300 disk images (medium tree depth limit)
    93             fRc = True
    94             oSession = self.openSession(oVM)
    95             for i in range(1, 301):
    96                 sHddPath = os.path.join(self.sScratchPath, 'Test' + str(i) + '.vdi')
    97                 if i is 1:
    98                     oHd = oSession.createBaseHd(sHddPath, cb=1024*1024)
    99                 else:
    100                     oHd = oSession.createDiffHd(oHd, sHddPath)
    101                 if oHd is None:
    102                     fRc = False
    103                     break
    104 
    105             # modify the VM config, attach HDD
    106             fRc = fRc and oSession.attachHd(sHddPath, sController='SATA Controller', fImmutable=False, fForceResource=False)
    107             fRc = fRc and oSession.saveSettings()
    108             fRc = oSession.close() and fRc
    109 
    110             # unregister and re-register to test loading of settings
    111             sSettingsFile = oVM.settingsFilePath
    112             reporter.log('unregistering VM')
    113             oVM.unregister(vboxcon.CleanupMode_DetachAllReturnNone)
    114             oVBox = self.oVBoxMgr.getVirtualBox()
    115             reporter.log('opening VM %s, testing config reading' % (sSettingsFile))
    116             oVM = oVBox.openMachine(sSettingsFile)
    117 
    118             assert fRc is True
    119         except:
    120             reporter.errorXcpt()
    121 
    122         return reporter.testDone()[1] == 0
    123 
    124     def testSnapshotTreeDepth(self):
    125         """
    126         Test snapshot tree depth.
    127         """
    128         reporter.testStart('snapshotTreeDepth')
    129 
    130         try:
    131             oVM = self.createTestVM('test-snap', 1, None, 4)
    132             assert oVM is not None
    133 
    134             # modify the VM config, create and attach empty HDD
    135             oSession = self.openSession(oVM)
    136             sHddPath = os.path.join(self.sScratchPath, 'TestSnapEmpty.vdi')
    137             fRc = True
    138             fRc = fRc and oSession.createAndAttachHd(sHddPath, cb=1024*1024, sController='SATA Controller', fImmutable=False)
    139             fRc = fRc and oSession.saveSettings()
    140 
    141             # take 250 snapshots (snapshot tree depth limit)
    142             for i in range(1, 251):
    143                 fRc = fRc and oSession.takeSnapshot('Snapshot ' + str(i))
    144             fRc = oSession.close() and fRc
    145 
    146             # unregister and re-register to test loading of settings
    147             sSettingsFile = oVM.settingsFilePath
    148             reporter.log('unregistering VM')
    149             oVM.unregister(vboxcon.CleanupMode_DetachAllReturnNone)
    150             oVBox = self.oVBoxMgr.getVirtualBox()
    151             reporter.log('opening VM %s, testing config reading' % (sSettingsFile))
    152             oVM = oVBox.openMachine(sSettingsFile)
    153 
    154             assert fRc is True
    155         except:
    156             reporter.errorXcpt()
    157 
    158         return reporter.testDone()[1] == 0
     72        fRc = True
     73        for oSubTstDrv in self.aoSubTstDrvs:
     74            fRc &= oSubTstDrv.testIt()
     75        return fRc
    15976
    16077
    16178if __name__ == '__main__':
    162     sys.exit(tdTreeDepth1().main(sys.argv))
     79    sys.path.append(os.path.dirname(os.path.abspath(__file__)))
     80    oTstDrv = tdApi1()
     81    from tdPython1 import SubTstDrvPython1
     82    oTstDrv.addSubTestDriver(SubTstDrvPython1(oTstDrv))
     83    from tdAppliance1 import SubTstDrvAppliance1
     84    oTstDrv.addSubTestDriver(SubTstDrvAppliance1(oTstDrv))
     85    from tdMoveMedium1 import SubTstDrvMoveMedium1
     86    oTstDrv.addSubTestDriver(SubTstDrvMoveMedium1(oTstDrv))
     87    from tdTreeDepth1 import SubTstDrvTreeDepth1
     88    oTstDrv.addSubTestDriver(SubTstDrvTreeDepth1(oTstDrv))
     89    sys.exit(oTstDrv.main(sys.argv))
    16390
  • trunk/src/VBox/ValidationKit/tests/api/tdAppliance1.py

    r70521 r70812  
    3838# Only the main script needs to modify the path.
    3939try:    __file__
    40 except: __file__ = sys.argv[0];
    41 g_ksValidationKitDir = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))));
    42 sys.path.append(g_ksValidationKitDir);
     40except: __file__ = sys.argv[0]
     41g_ksValidationKitDir = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
     42sys.path.append(g_ksValidationKitDir)
    4343
    4444# Validation Kit imports.
    45 from testdriver import reporter;
    46 from testdriver import base;
    47 from testdriver import vbox;
    48 from testdriver import vboxwrappers;
    49 
    50 
    51 class tdAppliance1(vbox.TestDriver):
     45from testdriver import base
     46from testdriver import reporter
     47from testdriver import vboxwrappers
     48
     49
     50class SubTstDrvAppliance1(base.SubTestDriverBase):
    5251    """
    53     IAppliance Test #1.
     52    Sub-test driver for IAppliance Test #1.
    5453    """
    5554
    56     def __init__(self):
    57         vbox.TestDriver.__init__(self);
    58         self.asRsrcs            = None;
    59 
    60 
    61     #
    62     # Overridden methods.
    63     #
    64 
    65     def actionConfig(self):
    66         """
    67         Import the API.
    68         """
    69         if not self.importVBoxApi():
    70             return False;
    71         return True;
    72 
    73     def actionExecute(self):
    74         """
    75         Execute the testcase.
    76         """
    77         fRc = True;
     55    def __init__(self, oTstDrv):
     56        base.SubTestDriverBase.__init__(self, 'appliance', oTstDrv)
     57
     58    def testIt(self):
     59        """
     60        Execute the sub-testcase.
     61        """
     62        fRc = True
    7863
    7964        # Import a set of simple OVAs.
     
    10388            'tdAppliance1-t7-bad-instance.ova',
    10489            ):
    105             reporter.testStart(sOva);
     90            reporter.testStart(sOva)
    10691            try:
    107                 fRc = self.testImportOva(os.path.join(g_ksValidationKitDir, 'tests', 'api', sOva)) and fRc;
    108                 fRc = self.testImportOvaAsOvf(os.path.join(g_ksValidationKitDir, 'tests', 'api', sOva)) and fRc;
     92                fRc = self.testImportOva(os.path.join(g_ksValidationKitDir, 'tests', 'api', sOva)) and fRc
     93                fRc = self.testImportOvaAsOvf(os.path.join(g_ksValidationKitDir, 'tests', 'api', sOva)) and fRc
    10994            except:
    110                 reporter.errorXcpt();
    111                 fRc = False;
    112             fRc = reporter.testDone() and fRc;
     95                reporter.errorXcpt()
     96                fRc = False
     97            fRc = reporter.testDone() and fRc
    11398
    11499        ## @todo more stuff
    115         return fRc;
     100        return fRc
    116101
    117102    #
     
    121106    def testImportOva(self, sOva):
    122107        """ xxx """
    123         oVirtualBox = self.oVBoxMgr.getVirtualBox();
     108        oVirtualBox = self.oTstDrv.oVBoxMgr.getVirtualBox()
    124109
    125110        #
     
    127112        #
    128113        try:
    129             oAppliance = oVirtualBox.createAppliance();
    130         except:
    131             return reporter.errorXcpt('IVirtualBox::createAppliance failed');
    132         print("oAppliance=%s" % (oAppliance,));
    133 
    134         try:
    135             oProgress = vboxwrappers.ProgressWrapper(oAppliance.read(sOva), self.oVBoxMgr, self, 'read "%s"' % (sOva,));
    136         except:
    137             return reporter.errorXcpt('IAppliance::read("%s") failed' % (sOva,));
    138         oProgress.wait();
    139         if oProgress.logResult() is False:
    140             return False;
    141 
    142         try:
    143             oAppliance.interpret();
    144         except:
    145             return reporter.errorXcpt('IAppliance::interpret() failed on "%s"' % (sOva,));
     114            oAppliance = oVirtualBox.createAppliance()
     115        except:
     116            return reporter.errorXcpt('IVirtualBox::createAppliance failed')
     117
     118        try:
     119            oProgress = vboxwrappers.ProgressWrapper(oAppliance.read(sOva), self.oTstDrv.oVBoxMgr, self.oTstDrv, 'read "%s"' % (sOva,))
     120        except:
     121            return reporter.errorXcpt('IAppliance::read("%s") failed' % (sOva,))
     122        oProgress.wait()
     123        if oProgress.logResult() is False:
     124            return False
     125
     126        try:
     127            oAppliance.interpret()
     128        except:
     129            return reporter.errorXcpt('IAppliance::interpret() failed on "%s"' % (sOva,))
    146130
    147131        #
    148132        try:
    149133            oProgress = vboxwrappers.ProgressWrapper(oAppliance.importMachines([]),
    150                                                      self.oVBoxMgr, self, 'importMachines "%s"' % (sOva,));
    151         except:
    152             return reporter.errorXcpt('IAppliance::importMachines failed on "%s"' % (sOva,));
    153         oProgress.wait();
    154         if oProgress.logResult() is False:
    155             return False;
     134                                                     self.oTstDrv.oVBoxMgr, self.oTstDrv, 'importMachines "%s"' % (sOva,))
     135        except:
     136            return reporter.errorXcpt('IAppliance::importMachines failed on "%s"' % (sOva,))
     137        oProgress.wait()
     138        if oProgress.logResult() is False:
     139            return False
    156140
    157141        #
     
    160144        ## @todo do more with this OVA. Like untaring it and loading it as an OVF.  Export it and import it again.
    161145
    162         return True;
     146        return True
    163147
    164148    def testImportOvaAsOvf(self, sOva):
    165149        """
    166         Unpacts the OVA into a subdirectory in the scratch area and imports it as an OVF.
    167         """
    168         oVirtualBox = self.oVBoxMgr.getVirtualBox();
    169 
    170         sTmpDir = os.path.join(self.sScratchPath, os.path.split(sOva)[1] + '-ovf');
    171         sOvf    = os.path.join(sTmpDir, os.path.splitext(os.path.split(sOva)[1])[0] + '.ovf');
     150        Unpacks the OVA into a subdirectory in the scratch area and imports it as an OVF.
     151        """
     152        oVirtualBox = self.oTstDrv.oVBoxMgr.getVirtualBox()
     153
     154        sTmpDir = os.path.join(self.oTstDrv.sScratchPath, os.path.split(sOva)[1] + '-ovf')
     155        sOvf    = os.path.join(sTmpDir, os.path.splitext(os.path.split(sOva)[1])[0] + '.ovf')
    172156
    173157        #
     
    175159        #
    176160        try:
    177             os.mkdir(sTmpDir, 0o755);
    178             oTarFile = tarfile.open(sOva, 'r:*');
    179             oTarFile.extractall(sTmpDir);
    180             oTarFile.close();
    181         except:
    182             return reporter.errorXcpt('Unpacking "%s" to "%s" for OVF style importing failed' % (sOvf, sTmpDir,));
     161            os.mkdir(sTmpDir, 0o755)
     162            oTarFile = tarfile.open(sOva, 'r:*')
     163            oTarFile.extractall(sTmpDir)
     164            oTarFile.close()
     165        except:
     166            return reporter.errorXcpt('Unpacking "%s" to "%s" for OVF style importing failed' % (sOvf, sTmpDir,))
    183167
    184168        #
     
    186170        #
    187171        try:
    188             oAppliance2 = oVirtualBox.createAppliance();
    189         except:
    190             return reporter.errorXcpt('IVirtualBox::createAppliance failed (#2)');
    191         print("oAppliance2=%s" % (oAppliance2,));
    192 
    193         try:
    194             oProgress = vboxwrappers.ProgressWrapper(oAppliance2.read(sOvf), self.oVBoxMgr, self, 'read "%s"' % (sOvf,));
    195         except:
    196             return reporter.errorXcpt('IAppliance::read("%s") failed' % (sOvf,));
    197         oProgress.wait();
    198         if oProgress.logResult() is False:
    199             return False;
    200 
    201         try:
    202             oAppliance2.interpret();
    203         except:
    204             return reporter.errorXcpt('IAppliance::interpret() failed on "%s"' % (sOvf,));
     172            oAppliance2 = oVirtualBox.createAppliance()
     173        except:
     174            return reporter.errorXcpt('IVirtualBox::createAppliance failed (#2)')
     175
     176        try:
     177            oProgress = vboxwrappers.ProgressWrapper(oAppliance2.read(sOvf), self.oTstDrv.oVBoxMgr, self.oTstDrv, 'read "%s"' % (sOvf,))
     178        except:
     179            return reporter.errorXcpt('IAppliance::read("%s") failed' % (sOvf,))
     180        oProgress.wait()
     181        if oProgress.logResult() is False:
     182            return False
     183
     184        try:
     185            oAppliance2.interpret()
     186        except:
     187            return reporter.errorXcpt('IAppliance::interpret() failed on "%s"' % (sOvf,))
    205188
    206189        try:
    207190            oProgress = vboxwrappers.ProgressWrapper(oAppliance2.importMachines([]),
    208                                                      self.oVBoxMgr, self, 'importMachines "%s"' % (sOvf,));
    209         except:
    210             return reporter.errorXcpt('IAppliance::importMachines failed on "%s"' % (sOvf,));
    211         oProgress.wait();
    212         if oProgress.logResult() is False:
    213             return False;
    214 
    215         return True;
     191                                                     self.oTstDrv.oVBoxMgr, self.oTstDrv, 'importMachines "%s"' % (sOvf,))
     192        except:
     193            return reporter.errorXcpt('IAppliance::importMachines failed on "%s"' % (sOvf,))
     194        oProgress.wait()
     195        if oProgress.logResult() is False:
     196            return False
     197
     198        return True
    216199
    217200if __name__ == '__main__':
    218     sys.exit(tdAppliance1().main(sys.argv));
    219 
     201    sys.path.append(os.path.dirname(os.path.abspath(__file__)))
     202    from tdApi1 import tdApi1
     203    oTstDrv = tdApi1()
     204    oTstDrv.addSubTestDriver(SubTstDrvAppliance1(oTstDrv))
     205    sys.exit(oTstDrv.main(sys.argv))
     206
  • trunk/src/VBox/ValidationKit/tests/api/tdMoveMedium1.py

    r70811 r70812  
    11#!/usr/bin/env python
    22# -*- coding: utf-8 -*-
    3 # $Id: tdMoveMedium.py
     3# $Id$
    44
    55"""
    6 VirtualBox Validation Kit - Medium Move Test
     6VirtualBox Validation Kit - Medium Move Test #1
    77"""
    88
     
    2828terms and conditions of either the GPL or the CDDL or both.
    2929"""
    30 __version__ = ""
     30__version__ = "$Revision$"
     31
    3132
    3233# Standard Python imports.
     
    4142
    4243# Validation Kit imports.
    43 from common     import utils
     44from testdriver import base
    4445from testdriver import reporter
    45 from testdriver import vbox
    46 from testdriver import vboxwrappers;
     46from testdriver import vboxwrappers
    4747
    48 class tdMoveMedium(vbox.TestDriver):
     48
     49class SubTstDrvMoveMedium1(base.SubTestDriverBase):
    4950    """
    50     Medium moving Test.
     51    Sub-test driver for Medium Move Test #1.
    5152    """
    5253
    53     # Suffix exclude list.
     54    # List of suffixes to append.
    5455    suffixes = [
    5556        '.vdi',
    56     ];
     57    ]
    5758
    58     def __init__(self):
    59         vbox.TestDriver.__init__(self)
    60         self.asRsrcs            = None
     59    def __init__(self, oTstDrv):
     60        base.SubTestDriverBase.__init__(self, 'move-medium', oTstDrv)
    6161
    62     #
    63     # Overridden methods.
    64     #
    65 
    66     def actionConfig(self):
     62    def testIt(self):
    6763        """
    68         Import the API.
    69         """
    70         if not self.importVBoxApi():
    71             return False
    72         return True
    73 
    74     def actionExecute(self):
    75         """
    76         Execute the testcase.
     64        Execute the sub-testcase.
    7765        """
    7866        return  self.testMediumMove()
     
    8169    # Test execution helpers.
    8270    #
     71
    8372    def setLocation(self, sLocation, aListOfAttach):
    8473        for attachment in aListOfAttach:
    8574            try:
    86                 oMedium = attachment.medium;
     75                oMedium = attachment.medium
    8776                reporter.log('Move medium ' + oMedium.name + ' to the ' + sLocation)
    8877            except:
    89                 reporter.errorXcpt('failed to get the medium from the IMediumAttachment "%s"' % (attachment));
     78                reporter.errorXcpt('failed to get the medium from the IMediumAttachment "%s"' % (attachment))
    9079
    9180            try:
    92                 oProgress = vboxwrappers.ProgressWrapper(oMedium.setLocation(sLocation), self.oVBoxMgr, self, 'move "%s"' % (oMedium.name,));
     81                oProgress = vboxwrappers.ProgressWrapper(oMedium.setLocation(sLocation), self.oTstDrv.oVBoxMgr, self.oTstDrv, 'move "%s"' % (oMedium.name,))
    9382            except:
    94                 return reporter.errorXcpt('Medium::setLocation("%s") for medium "%s" failed' % (sLocation, oMedium.name,));
     83                return reporter.errorXcpt('Medium::setLocation("%s") for medium "%s" failed' % (sLocation, oMedium.name,))
    9584
    96             oProgress.wait();
     85            oProgress.wait()
    9786            if oProgress.logResult() is False:
    98                 return False;
     87                return False
    9988
    10089    # Test with VDI image
     
    113102
    114103        try:
    115             oVM = self.createTestVM('test-medium-move', 1, None, 4)
     104            oVM = self.oTstDrv.createTestVM('test-medium-move', 1, None, 4)
    116105            assert oVM is not None
    117106
     
    119108            fRc = True
    120109            c = 0
    121             oSession = self.openSession(oVM)
     110            oSession = self.oTstDrv.openSession(oVM)
    122111            for i in self.suffixes:
    123                 sHddPath = os.path.join(self.sScratchPath, 'Test' + str(c) + i)
     112                sHddPath = os.path.join(self.oTstDrv.sScratchPath, 'Test' + str(c) + i)
    124113                oHd = oSession.createBaseHd(sHddPath, cb=1024*1024)
    125114                if oHd is None:
     
    133122
    134123            #create temporary subdirectory in the current working directory
    135             sOrigLoc = self.sScratchPath
     124            sOrigLoc = self.oTstDrv.sScratchPath
    136125            sNewLoc = os.path.join(sOrigLoc, 'newLocation/')
    137126
    138             os.makedirs(sNewLoc, 0o775);
     127            os.makedirs(sNewLoc, 0o775)
    139128
    140129            aListOfAttach = oVM.getMediumAttachmentsOfController(sController)
     
    170159        return reporter.testDone()[1] == 0
    171160
     161
    172162if __name__ == '__main__':
    173     sys.exit(tdMoveMedium().main(sys.argv))
     163    sys.path.append(os.path.dirname(os.path.abspath(__file__)))
     164    from tdApi1 import tdApi1
     165    oTstDrv = tdApi1()
     166    oTstDrv.addSubTestDriver(SubTstDrvMoveMedium1(oTstDrv))
     167    sys.exit(oTstDrv.main(sys.argv))
    174168
  • trunk/src/VBox/ValidationKit/tests/api/tdPython1.py

    r70660 r70812  
    3939# Only the main script needs to modify the path.
    4040try:    __file__
    41 except: __file__ = sys.argv[0];
    42 g_ksValidationKitDir = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))));
    43 sys.path.append(g_ksValidationKitDir);
     41except: __file__ = sys.argv[0]
     42g_ksValidationKitDir = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
     43sys.path.append(g_ksValidationKitDir)
    4444
    4545# Validation Kit imports.
    46 from testdriver import reporter;
    47 from testdriver import base;
    48 from testdriver import vbox;
    49 
    50 
    51 class tdPython1(vbox.TestDriver):
     46from testdriver import base
     47from testdriver import reporter
     48
     49
     50class SubTstDrvPython1(base.SubTestDriverBase):
    5251    """
    53     Python Bindings Test #1.
     52    Sub-test driver for Python Bindings Test #1.
    5453    """
    5554
    56     def __init__(self):
    57         vbox.TestDriver.__init__(self);
    58         self.asRsrcs            = None;
    59 
    60 
    61     #
    62     # Overridden methods.
    63     #
    64 
    65     def actionConfig(self):
    66         """
    67         Import the API.
    68         """
    69         if not self.importVBoxApi():
    70             return False;
    71         return True;
    72 
    73     def actionExecute(self):
    74         """
    75         Execute the testcase.
     55    def __init__(self, oTstDrv):
     56        base.SubTestDriverBase.__init__(self, 'python-binding', oTstDrv)
     57
     58    def testIt(self):
     59        """
     60        Execute the sub-testcase.
    7661        """
    7762        return  self.testEventQueueWaiting() \
    78             and self.testEventQueueInterrupt();
     63            and self.testEventQueueInterrupt()
    7964
    8065    #
     
    8570        """ Thread procedure for checking that waitForEvents fails when not called by the main thread. """
    8671        try:
    87             rc2 = self.oVBoxMgr.waitForEvents(0);
     72            rc2 = self.oTstDrv.oVBoxMgr.waitForEvents(0)
    8873        except:
    89             return True;
    90         reporter.error('waitForEvents() returned "%s" when called on a worker thread, expected exception.' % (rc2,));
    91         return False;
     74            return True
     75        reporter.error('waitForEvents() returned "%s" when called on a worker thread, expected exception.' % (rc2,))
     76        return False
    9277
    9378    def testEventQueueWaiting(self):
     
    9580        Test event queue waiting.
    9681        """
    97         reporter.testStart('waitForEvents');
     82        reporter.testStart('waitForEvents')
    9883
    9984        # Check return values and such.
    10085        for cMsTimeout in (0, 1, 2, 3, 256, 1000, 0):
    101             iLoop = 0;
     86            iLoop = 0
    10287            while True:
    10388                try:
    104                     rc = self.oVBoxMgr.waitForEvents(cMsTimeout);
     89                    rc = self.oTstDrv.oVBoxMgr.waitForEvents(cMsTimeout)
    10590                except:
    106                     reporter.errorXcpt();
    107                     break;
     91                    reporter.errorXcpt()
     92                    break
    10893                if not isinstance(rc, int):
    109                     reporter.error('waitForEvents returns non-integer type');
    110                     break;
     94                    reporter.error('waitForEvents returns non-integer type')
     95                    break
    11196                if rc == 1:
    112                     break;
     97                    break
    11398                if rc != 0:
    114                     reporter.error('waitForEvents returns "%s", expected 0 or 1' % (rc,));
    115                     break;
    116                 iLoop += 1;
     99                    reporter.error('waitForEvents returns "%s", expected 0 or 1' % (rc,))
     100                    break
     101                iLoop += 1
    117102                if iLoop > 10240:
    118103                    reporter.error('waitForEvents returns 0 (success) %u times. '
    119104                                   'Expected 1 (timeout/interrupt) after a call or two.'
    120                                    % (iLoop,));
    121                     break;
     105                                   % (iLoop,))
     106                    break
    122107            if reporter.testErrorCount() != 0:
    123                 break;
     108                break
    124109
    125110        # Check that we get an exception when trying to call the method from
    126111        # a different thread.
    127112        reporter.log('If running a debug build, you will see an ignored assertion now. Please ignore it.')
    128         sVBoxAssertSaved = os.environ.get('VBOX_ASSERT', 'breakpoint');
    129         os.environ['VBOX_ASSERT'] = 'ignore';
    130         oThread = threading.Thread(target=self.testEventQueueWaitingThreadProc);
    131         oThread.start();
    132         oThread.join();
    133         os.environ['VBOX_ASSERT'] = sVBoxAssertSaved;
    134 
    135         return reporter.testDone()[1] == 0;
     113        sVBoxAssertSaved = os.environ.get('VBOX_ASSERT', 'breakpoint')
     114        os.environ['VBOX_ASSERT'] = 'ignore'
     115        oThread = threading.Thread(target=self.testEventQueueWaitingThreadProc)
     116        oThread.start()
     117        oThread.join()
     118        os.environ['VBOX_ASSERT'] = sVBoxAssertSaved
     119
     120        return reporter.testDone()[1] == 0
    136121
    137122    def interruptWaitEventsThreadProc(self):
    138123        """ Thread procedure that's used for waking up the main thread. """
    139         time.sleep(2);
     124        time.sleep(2)
    140125        try:
    141             rc2 = self.oVBoxMgr.interruptWaitEvents();
     126            rc2 = self.oTstDrv.oVBoxMgr.interruptWaitEvents()
    142127        except:
    143             reporter.errorXcpt();
     128            reporter.errorXcpt()
    144129        else:
    145130            if rc2 is True:
    146                 return True;
    147             reporter.error('interruptWaitEvents returned "%s" when called from other thread, expected True' % (rc2,));
    148         return False;
     131                return True
     132            reporter.error('interruptWaitEvents returned "%s" when called from other thread, expected True' % (rc2,))
     133        return False
    149134
    150135    def testEventQueueInterrupt(self):
     
    152137        Test interrupting an event queue wait.
    153138        """
    154         reporter.testStart('interruptWait');
     139        reporter.testStart('interruptWait')
    155140
    156141        # interrupt ourselves first and check the return value.
    157142        for i in range(0, 10):
    158143            try:
    159                 rc = self.oVBoxMgr.interruptWaitEvents();
     144                rc = self.oTstDrv.oVBoxMgr.interruptWaitEvents()
    160145            except:
    161                 reporter.errorXcpt();
    162                 break;
     146                reporter.errorXcpt()
     147                break
    163148            if rc is not True:
    164                 reporter.error('interruptWaitEvents returned "%s" expected True' % (rc,));
     149                reporter.error('interruptWaitEvents returned "%s" expected True' % (rc,))
    165150                break
    166151
     
    176161                # Try quiesce the event queue.
    177162                for _ in range(1, 100):
    178                     self.oVBoxMgr.waitForEvents(0);
     163                    self.oTstDrv.oVBoxMgr.waitForEvents(0)
    179164
    180165                # Create a thread that will interrupt us in 2 seconds.
    181166                try:
    182                     oThread = threading.Thread(target=self.interruptWaitEventsThreadProc);
    183                     oThread.setDaemon(False);
     167                    oThread = threading.Thread(target=self.interruptWaitEventsThreadProc)
     168                    oThread.setDaemon(False)
    184169                except:
    185                     reporter.errorXcpt();
    186                     break;
    187 
    188                 cMsTimeout = 20000;
     170                    reporter.errorXcpt()
     171                    break
     172
     173                cMsTimeout = 20000
    189174                if i == 2:
    190                     cMsTimeout = -1;
     175                    cMsTimeout = -1
    191176                elif i == 3:
    192                     cMsTimeout = -999999;
     177                    cMsTimeout = -999999
    193178
    194179                # Do the wait.
    195                 oThread.start();
    196                 msNow = base.timestampMilli();
     180                oThread.start()
     181                msNow = base.timestampMilli()
    197182                try:
    198                     rc = self.oVBoxMgr.waitForEvents(cMsTimeout);
     183                    rc = self.oTstDrv.oVBoxMgr.waitForEvents(cMsTimeout)
    199184                except:
    200                     reporter.errorXcpt();
     185                    reporter.errorXcpt()
    201186                else:
    202                     msElapsed = base.timestampMilli() - msNow;
     187                    msElapsed = base.timestampMilli() - msNow
    203188
    204189                    # Check the return code and elapsed time.
    205190                    if not isinstance(rc, int):
    206                         reporter.error('waitForEvents returns non-integer type after %u ms, expected 1' % (msElapsed,));
     191                        reporter.error('waitForEvents returns non-integer type after %u ms, expected 1' % (msElapsed,))
    207192                    elif rc != 1:
    208                         reporter.error('waitForEvents returned "%s" after %u ms, expected 1' % (rc, msElapsed));
     193                        reporter.error('waitForEvents returned "%s" after %u ms, expected 1' % (rc, msElapsed))
    209194                    if msElapsed > 15000:
    210                         reporter.error('waitForEvents after %u ms, expected just above 2-3 seconds' % (msElapsed,));
     195                        reporter.error('waitForEvents after %u ms, expected just above 2-3 seconds' % (msElapsed,))
    211196                    elif msElapsed < 100:
    212                         reporter.error('waitForEvents after %u ms, expected more than 100 ms.' % (msElapsed,));
    213 
    214                 oThread.join();
    215                 oThread = None;
     197                        reporter.error('waitForEvents after %u ms, expected more than 100 ms.' % (msElapsed,))
     198
     199                oThread.join()
     200                oThread = None
    216201                if reporter.testErrorCount() != 0:
    217                     break;
    218                 reporter.log('Iteration %u was successful...' % (i + 1,));
    219         return reporter.testDone()[1] == 0;
     202                    break
     203                reporter.log('Iteration %u was successful...' % (i + 1,))
     204        return reporter.testDone()[1] == 0
    220205
    221206
    222207if __name__ == '__main__':
    223     sys.exit(tdPython1().main(sys.argv));
    224 
     208    sys.path.append(os.path.dirname(os.path.abspath(__file__)))
     209    from tdApi1 import tdApi1
     210    oTstDrv = tdApi1()
     211    oTstDrv.addSubTestDriver(SubTstDrvPython1(oTstDrv))
     212    sys.exit(oTstDrv.main(sys.argv))
     213
  • trunk/src/VBox/ValidationKit/tests/api/tdTreeDepth1.py

    r69111 r70812  
    4242
    4343# Validation Kit imports.
     44from testdriver import base
    4445from testdriver import reporter
    45 from testdriver import vbox
    4646from testdriver import vboxcon
    4747
    4848
    49 class tdTreeDepth1(vbox.TestDriver):
     49class SubTstDrvTreeDepth1(base.SubTestDriverBase):
    5050    """
    51     Medium and Snapshot Tree Depth Test #1.
     51    Sub-test driver for Medium and Snapshot Tree Depth Test #1.
    5252    """
    5353
    54     def __init__(self):
    55         vbox.TestDriver.__init__(self)
    56         self.asRsrcs            = None
     54    def __init__(self, oTstDrv):
     55        base.SubTestDriverBase.__init__(self, 'tree-depth', oTstDrv)
    5756
    58 
    59     #
    60     # Overridden methods.
    61     #
    62 
    63     def actionConfig(self):
     57    def testIt(self):
    6458        """
    65         Import the API.
    66         """
    67         if not self.importVBoxApi():
    68             return False
    69         return True
    70 
    71     def actionExecute(self):
    72         """
    73         Execute the testcase.
     59        Execute the sub-testcase.
    7460        """
    7561        return  self.testMediumTreeDepth() \
     
    8773
    8874        try:
    89             oVM = self.createTestVM('test-medium', 1, None, 4)
     75            oVM = self.oTstDrv.createTestVM('test-medium', 1, None, 4)
    9076            assert oVM is not None
    9177
    9278            # create chain with 300 disk images (medium tree depth limit)
    9379            fRc = True
    94             oSession = self.openSession(oVM)
     80            oSession = self.oTstDrv.openSession(oVM)
    9581            for i in range(1, 301):
    96                 sHddPath = os.path.join(self.sScratchPath, 'Test' + str(i) + '.vdi')
     82                sHddPath = os.path.join(self.oTstDrv.sScratchPath, 'Test' + str(i) + '.vdi')
    9783                if i is 1:
    9884                    oHd = oSession.createBaseHd(sHddPath, cb=1024*1024)
     
    11298            reporter.log('unregistering VM')
    11399            oVM.unregister(vboxcon.CleanupMode_DetachAllReturnNone)
    114             oVBox = self.oVBoxMgr.getVirtualBox()
     100            oVBox = self.oTstDrv.oVBoxMgr.getVirtualBox()
    115101            reporter.log('opening VM %s, testing config reading' % (sSettingsFile))
    116102            oVM = oVBox.openMachine(sSettingsFile)
     
    129115
    130116        try:
    131             oVM = self.createTestVM('test-snap', 1, None, 4)
     117            oVM = self.oTstDrv.createTestVM('test-snap', 1, None, 4)
    132118            assert oVM is not None
    133119
    134120            # modify the VM config, create and attach empty HDD
    135             oSession = self.openSession(oVM)
    136             sHddPath = os.path.join(self.sScratchPath, 'TestSnapEmpty.vdi')
     121            oSession = self.oTstDrv.openSession(oVM)
     122            sHddPath = os.path.join(self.oTstDrv.sScratchPath, 'TestSnapEmpty.vdi')
    137123            fRc = True
    138124            fRc = fRc and oSession.createAndAttachHd(sHddPath, cb=1024*1024, sController='SATA Controller', fImmutable=False)
     
    148134            reporter.log('unregistering VM')
    149135            oVM.unregister(vboxcon.CleanupMode_DetachAllReturnNone)
    150             oVBox = self.oVBoxMgr.getVirtualBox()
     136            oVBox = self.oTstDrv.oVBoxMgr.getVirtualBox()
    151137            reporter.log('opening VM %s, testing config reading' % (sSettingsFile))
    152138            oVM = oVBox.openMachine(sSettingsFile)
     
    160146
    161147if __name__ == '__main__':
    162     sys.exit(tdTreeDepth1().main(sys.argv))
     148    sys.path.append(os.path.dirname(os.path.abspath(__file__)))
     149    from tdApi1 import tdApi1
     150    oTstDrv = tdApi1()
     151    oTstDrv.addSubTestDriver(SubTstDrvTreeDepth1(oTstDrv))
     152    sys.exit(oTstDrv.main(sys.argv))
    163153
Note: See TracChangeset for help on using the changeset viewer.

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