VirtualBox

Ignore:
Timestamp:
Jun 20, 2019 4:19:11 PM (5 years ago)
Author:
vboxsync
Message:

tdAddGuestCtrl.py: Adjust tdTestFileOpenCheckSize for 5.2; added seek(,End) tests. bugref:9151 bugref:9320

File:
1 edited

Legend:

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

    r79255 r79262  
    8383        ## IGuest reference.
    8484        self.oGuest      = oSession.o.console.guest; ## @todo may throw shit
    85         self.oSesison    = oSession;
    86         self.oTxsSesison = oTxsSession;
     85        self.oSession    = oSession;
     86        self.oTxsSession = oTxsSession;
    8787        self.oTestVm     = oTestVm;
    8888
     
    426426        return True;
    427427
    428     def doStepsOnOpenedFile(self, fExpectSuccess):
     428    def doStepsOnOpenedFile(self, fExpectSuccess, fpApiVer):
    429429        """ Overridden by children to do more testing. """
    430         _ = fExpectSuccess;
     430        _ = fExpectSuccess; _ = fpApiVer;
    431431        return True;
    432432
     
    443443        return True;
    444444
    445     def doSteps(self, fExpectSuccess):
     445    def doSteps(self, fExpectSuccess, fpApiVer):
    446446        """ Do the tests. """
    447447        fRc = self.doOpenStep(fExpectSuccess);
    448448        if fRc is True:
    449             fRc = self.doStepsOnOpenedFile(fExpectSuccess);
     449            fRc = self.doStepsOnOpenedFile(fExpectSuccess, fpApiVer);
    450450        if self.oOpenedFile:
    451451            fRc = self.doCloseStep() and fRc;
     
    462462        self.cbOpenExpected = cbOpenExpected;
    463463
    464     def doStepsOnOpenedFile(self, fExpectSuccess):
     464    def doStepsOnOpenedFile(self, fExpectSuccess, fpApiVer):
    465465        #
    466466        # Call parent.
    467467        #
    468         fRc = tdTestFileOpen.doStepsOnOpenedFile(self, fExpectSuccess);
    469 
    470         #
    471         # Check the size.
    472         #
    473         try:
    474             oFsObjInfo = self.oOpenedFile.queryInfo();
    475         except:
    476             return reporter.errorXcpt('queryInfo([%s, %s, %s, %s, %s, %s])'
    477                                       % (self.sFile, self.eAccessMode, self.eAction, self.eSharing,
    478                                          self.fCreationMode, self.afOpenFlags,));
    479         if oFsObjInfo is None:
    480             return reporter.error('IGuestFile::queryInfo returned None');
    481         try:
    482             cbFile = oFsObjInfo.objectSize;
    483         except:
    484             return reporter.errorXcpt();
    485         if cbFile != self.cbOpenExpected:
    486             return reporter.error('Wrong file size after open (%d): %s, expected %s (file %s) (#1)'
    487                                   % (self.eAction, cbFile, self.cbOpenExpected, self.sFile));
    488 
    489         try:
    490             cbFile = self.oOpenedFile.querySize();
    491         except:
    492             return reporter.errorXcpt('querySize([%s, %s, %s, %s, %s, %s])'
    493                                       % (self.sFile, self.eAccessMode, self.eAction, self.eSharing,
    494                                          self.fCreationMode, self.afOpenFlags,));
    495         if cbFile != self.cbOpenExpected:
    496             return reporter.error('Wrong file size after open (%d): %s, expected %s (file %s) (#2)'
    497                                   % (self.eAction, cbFile, self.cbOpenExpected, self.sFile));
     468        fRc = tdTestFileOpen.doStepsOnOpenedFile(self, fExpectSuccess, fpApiVer);
     469
     470        #
     471        # Check the size.  Requires 6.0 or later (E_NOTIMPL in 5.2).
     472        #
     473        if fpApiVer >= 6.0:
     474            try:
     475                oFsObjInfo = self.oOpenedFile.queryInfo();
     476            except:
     477                return reporter.errorXcpt('queryInfo([%s, %s, %s, %s, %s, %s])'
     478                                          % (self.sFile, self.eAccessMode, self.eAction, self.eSharing,
     479                                             self.fCreationMode, self.afOpenFlags,));
     480            if oFsObjInfo is None:
     481                return reporter.error('IGuestFile::queryInfo returned None');
     482            try:
     483                cbFile = oFsObjInfo.objectSize;
     484            except:
     485                return reporter.errorXcpt();
     486            if cbFile != self.cbOpenExpected:
     487                return reporter.error('Wrong file size after open (%d): %s, expected %s (file %s) (#1)'
     488                                      % (self.eAction, cbFile, self.cbOpenExpected, self.sFile));
     489
     490            try:
     491                cbFile = self.oOpenedFile.querySize();
     492            except:
     493                return reporter.errorXcpt('querySize([%s, %s, %s, %s, %s, %s])'
     494                                          % (self.sFile, self.eAccessMode, self.eAction, self.eSharing,
     495                                             self.fCreationMode, self.afOpenFlags,));
     496            if cbFile != self.cbOpenExpected:
     497                return reporter.error('Wrong file size after open (%d): %s, expected %s (file %s) (#2)'
     498                                      % (self.eAction, cbFile, self.cbOpenExpected, self.sFile));
    498499
    499500        return fRc;
     
    34963497                break;
    34973498
    3498             fRc2 = oCurTest.doSteps(oCurRes.fRc);
     3499            fRc2 = oCurTest.doSteps(oCurRes.fRc, self.oTstDrv.fpApiVer);
    34993500            if fRc2 != oCurRes.fRc:
    35003501                fRc = reporter.error('Test #%d result mismatch: Got %s, expected %s' % (i, fRc2, oCurRes.fRc,));
     
    37183719            # Check stat info on the file as well as querySize.
    37193720            #
     3721            if self.oTstDrv.fpApiVer > 5.2:
     3722                try:
     3723                    oFsObjInfo = oFile.queryInfo();
     3724                except:
     3725                    fRc = reporter.errorXcpt('%s: queryInfo()' % (oTestFile.sPath,));
     3726                else:
     3727                    if oFsObjInfo is None:
     3728                        fRc = reporter.error('IGuestFile::queryInfo returned None');
     3729                    else:
     3730                        try:
     3731                            cbFile = oFsObjInfo.objectSize;
     3732                        except:
     3733                            fRc = reporter.errorXcpt();
     3734                        else:
     3735                            if cbFile != oTestFile.cbContent:
     3736                                fRc = reporter.error('%s: queryInfo returned incorrect file size: %s, expected %s'
     3737                                                     % (oTestFile.sPath, cbFile, oTestFile.cbContent));
     3738
     3739                try:
     3740                    cbFile = oFile.querySize();
     3741                except:
     3742                    fRc = reporter.errorXcpt('%s: querySize()' % (oTestFile.sPath,));
     3743                else:
     3744                    if cbFile != oTestFile.cbContent:
     3745                        fRc = reporter.error('%s: querySize returned incorrect file size: %s, expected %s'
     3746                                             % (oTestFile.sPath, cbFile, oTestFile.cbContent));
     3747
     3748            #
     3749            # Use seek to test the file size and do a few other end-relative seeks.
     3750            #
    37203751            try:
    3721                 oFsObjInfo = oFile.queryInfo();
     3752                cbFile = oFile.seek(0, vboxcon.FileSeekOrigin_End);
    37223753            except:
    3723                 fRc = reporter.errorXcpt('%s: queryInfo()' % (oTestFile.sPath,));
    3724             else:
    3725                 if oFsObjInfo is None:
    3726                     fRc = reporter.error('IGuestFile::queryInfo returned None');
    3727                 else:
    3728                     try:
    3729                         cbFile = oFsObjInfo.objectSize;
    3730                     except:
    3731                         fRc = reporter.errorXcpt();
    3732                     else:
    3733                         if cbFile != oTestFile.cbContent:
    3734                             fRc = reporter.error('%s: queryInfo returned incorrect file size: %s, expected %s'
    3735                                                  % (oTestFile.sPath, cbFile, oTestFile.cbContent));
    3736 
    3737             try:
    3738                 cbFile = oFile.querySize();
    3739             except:
    3740                 fRc = reporter.errorXcpt('%s: querySize()' % (oTestFile.sPath,));
     3754                fRc = reporter.errorXcpt('%s: seek(0,End)' % (oTestFile.sPath,));
    37413755            else:
    37423756                if cbFile != oTestFile.cbContent:
    3743                     fRc = reporter.error('%s: querySize returned incorrect file size: %s, expected %s'
     3757                    fRc = reporter.error('%s: seek(0,End) returned incorrect file size: %s, expected %s'
    37443758                                         % (oTestFile.sPath, cbFile, oTestFile.cbContent));
     3759            if oTestFile.cbContent > 0:
     3760                for _ in xrange(12):
     3761                    offSeek = self.oTestFiles.oRandom.randrange(oTestFile.cbContent + 1);
     3762                    try:
     3763                        offFile = oFile.seek(-offSeek, vboxcon.FileSeekOrigin_End);
     3764                    except:
     3765                        fRc = reporter.errorXcpt('%s: seek(%s,End)' % (oTestFile.sPath, -offSeek,));
     3766                    else:
     3767                        if offFile != oTestFile.cbContent - offSeek:
     3768                            fRc = reporter.error('%s: seek(%s,End) returned incorrect offset: %s, expected %s (cbContent=%s)'
     3769                                                 % (oTestFile.sPath, -offSeek, offSeek, oTestFile.cbContent - offSeek,
     3770                                                    oTestFile.cbContent,));
    37453771
    37463772            #
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