VirtualBox

Ignore:
Timestamp:
May 16, 2022 2:35:58 PM (3 years ago)
Author:
vboxsync
Message:

Validation Kit/unit tests: More fixes for running on NT4 guests. bugref:10195

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/tests/unittests/tdUnitTest1.py

    r94899 r95021  
    594594
    595595    def actionExecute(self):
     596        # Make sure vboxapi has been imported so we can execute the driver without going thru
     597        # a former configuring step.
     598        if not self.importVBoxApi():
     599            return False;
    596600        if not self._detectPaths():
    597601            return False;
     
    634638            self.sExeSuff = '.exe' if utils.getHostOs() in [ 'win', 'dos', 'os2' ] else '';
    635639
    636         self._testRunUnitTestsSet(r'^tst*', 'testcase');
    637         self._testRunUnitTestsSet(r'^tst*', '.');
     640        self._testRunUnitTestsSet(oTestVm, r'^tst*', 'testcase');
     641        self._testRunUnitTestsSet(oTestVm, r'^tst*', '.');
    638642
    639643        fRc = self.cFailed == 0;
     
    806810        or self.oTxsSession is None:
    807811            return;
    808         sStringExp = self.txsExpandString(self.oSession, self.oTxsSession, sString);
     812        sStringExp = self.oTxsSession.syncExpandString(sString);
    809813        if not sStringExp:
    810814            return;
     
    821825        if self.sMode.startswith('remote'):
    822826            self._logExpandString(sPath);
    823             fRc = self.txsIsDir(self.oSession, self.oTxsSession, sPath, fIgnoreErrors = True);
     827            fRc = self.oTxsSession.syncIsDir(sPath, fIgnoreErrors = True);
    824828            if not fRc:
    825                 fRc = self.txsIsFile(self.oSession, self.oTxsSession, sPath, fIgnoreErrors = True);
     829                fRc = self.oTxsSession.syncIsFile(sPath, fIgnoreErrors = True);
    826830        else:
    827831            fRc = os.path.exists(sPath);
     
    837841        fRc = True;
    838842        if self.sMode.startswith('remote'):
    839             fRc = self.txsMkDirPath(self.oSession, self.oTxsSession, sPath, fMode = 0o755);
     843            fRc = self.oTxsSession.syncMkDirPath(sPath, fMode = 0o755);
    840844        else:
    841845            if utils.getHostOs() in [ 'win', 'os2' ]:
     
    843847            else:
    844848                fRc = self._sudoExecuteSync(['/bin/mkdir', '-p', '-m', '0755', sPath]);
    845         if fRc is not True:
    846             raise Exception('Failed to create dir "%s".' % (sPath,));
    847         return True;
     849        if not fRc:
     850            reporter.log('Failed to create dir "%s".' % (sPath,));
     851        return fRc;
    848852
    849853    def _wrapCopyFile(self, sSrc, sDst, iMode):
     
    859863            self._logExpandString(sDst);
    860864            if self.sMode == 'remote-exec':
    861                 self.txsCopyFile(self.oSession, self.oTxsSession, sSrc, sDst, iMode);
     865                self.oTxsSession.syncCopyFile(sSrc, sDst, iMode);
    862866            else:
    863                 fRc = self.txsUploadFile(self.oSession, self.oTxsSession, sSrc, sDst);
     867                fRc = self.oTxsSession.syncUploadFile(sSrc, sDst);
    864868                if fRc:
    865                     self.oTxsSession.syncChMod(sDst, iMode);
     869                    fRc = self.oTxsSession.syncChMod(sDst, iMode);
    866870        else:
    867871            if utils.getHostOs() in [ 'win', 'os2' ]:
     
    874878                    if fRc is not True:
    875879                        raise Exception('Failed to chmod "%s".' % (sDst,));
    876         if fRc is not True:
    877             raise Exception('Failed to copy "%s" to "%s".' % (sSrc, sDst,));
    878         return True;
     880        if not fRc:
     881            reporter.log('Failed to copy "%s" to "%s".' % (sSrc, sDst,));
     882        return fRc;
    879883
    880884    def _wrapDeleteFile(self, sPath):
     
    887891        fRc = True;
    888892        if self.sMode.startswith('remote'):
    889             if self.txsIsFile(self.oSession, self.oTxsSession, sPath):
    890                 fRc = self.txsRmFile(self.oSession, self.oTxsSession, sPath);
     893            if self.oTxsSession.syncIsFile(sPath):
     894                fRc = self.oTxsSession.syncRmFile(sPath, fIgnoreErrors = True);
    891895        else:
    892896            if os.path.exists(sPath):
     
    895899                else:
    896900                    fRc = self._sudoExecuteSync(['/bin/rm', sPath]);
    897         if fRc is not True:
    898             raise Exception('Failed to remove "%s".' % (sPath,));
    899         return True;
     901        if not fRc:
     902            reporter.log('Failed to remove "%s".' % (sPath,));
     903        return fRc;
    900904
    901905    def _wrapRemoveDir(self, sPath):
     
    908912        fRc = True;
    909913        if self.sMode.startswith('remote'):
    910             if self.txsIsDir(self.oSession, self.oTxsSession, sPath):
    911                 fRc = self.txsRmDir(self.oSession, self.oTxsSession, sPath);
     914            if self.oTxsSession.syncIsDir(sPath):
     915                fRc = self.oTxsSession.syncRmDir(sPath, fIgnoreErrors = True);
    912916        else:
    913917            if os.path.exists(sPath):
     
    916920                else:
    917921                    fRc = self._sudoExecuteSync(['/bin/rmdir', sPath]);
    918         if fRc is not True:
    919             raise Exception('Failed to remove "%s".' % (sPath,));
    920         return True;
     922        if not fRc:
     923            reporter.log('Failed to remove "%s".' % (sPath,));
     924        return fRc;
    921925
    922926    def _envSet(self, sName, sValue):
     
    929933        return True;
    930934
    931     def _executeTestCase(self, sName, sFullPath, sTestCaseSubDir, oDevNull): # pylint: disable=too-many-locals,too-many-statements
     935    def _executeTestCase(self, oTestVm, sName, sFullPath, sTestCaseSubDir, oDevNull): # pylint: disable=too-many-locals,too-many-statements
    932936        """
    933937        Executes a test case.
     
    975979
    976980            sDst = os.path.join(sDstDir, os.path.basename(sFullPath) + self.sExeSuff);
    977             self._wrapCopyFile(sSrc, sDst, 0o755);
     981            fModeExe  = 0;
     982            fModeDeps = 0;
     983            if not oTestVm.isWindows(): ## @todo NT4 does not like the chmod. Investigate this!
     984                fModeExe  = 0o755;
     985                fModeDeps = 0o644;
     986            self._wrapCopyFile(sSrc, sDst, fModeExe);
    978987            asFilesToRemove.append(sDst);
    979988
     
    986995                        if self._wrapPathExists(sSrc):
    987996                            sDst = os.path.join(sDstDir, os.path.basename(sSrc));
    988                             self._wrapCopyFile(sSrc, sDst, 0o644);
     997                            self._wrapCopyFile(sSrc, sDst, fModeDeps);
    989998                            asFilesToRemove.append(sDst);
    990999
     
    9941003                if os.path.exists(sSrc):
    9951004                    sDst = os.path.join(sDstDir, os.path.basename(sSrc));
    996                     self._wrapCopyFile(sSrc, sDst, 0o644);
     1005                    self._wrapCopyFile(sSrc, sDst, fModeDeps);
    9971006                    asFilesToRemove.append(sDst);
    9981007
     
    10041013                    if os.path.exists(sSrc):
    10051014                        sDst = os.path.join(sDstDir, os.path.basename(sSrc));
    1006                         self._wrapCopyFile(sSrc, sDst, 0o644);
     1015                        self._wrapCopyFile(sSrc, sDst, fModeDeps);
    10071016                        asFilesToRemove.append(sDst);
    10081017
     
    10431052        if not self.fDryRun:
    10441053            if fCopyToRemote:
    1045                 fRc = self.txsRunTest(self.oTxsSession, sName, 30 * 60 * 1000, asArgs[0], asArgs, self.asEnv, \
    1046                                         fCheckSessionStatus = True);
     1054                fRc = self.txsRunTest(self.oTxsSession, sName, cMsTimeout = 30 * 60 * 1000, sExecName = asArgs[0], \
     1055                                      asArgs = asArgs, asAddEnv = self.asEnv, fCheckSessionStatus = True);
    10471056                if fRc:
    10481057                    iRc = 0;
     
    11231132        return fSkipped;
    11241133
    1125     def _testRunUnitTestsSet(self, sTestCasePattern, sTestCaseSubDir):
     1134    def _testRunUnitTestsSet(self, oTestVm, sTestCasePattern, sTestCaseSubDir):
    11261135        """
    11271136        Run subset of the unit tests set.
     
    12031212                reporter.testStart(sName);
    12041213                try:
    1205                     fSkipped = self._executeTestCase(sName, sFullPath, sTestCaseSubDir, oDevNull);
     1214                    fSkipped = self._executeTestCase(oTestVm, sName, sFullPath, sTestCaseSubDir, oDevNull);
    12061215                except:
    12071216                    reporter.errorXcpt('!*!');
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