VirtualBox

Ignore:
Timestamp:
Mar 23, 2023 8:24:15 AM (21 months ago)
Author:
vboxsync
Message:

Validation Kit/Guest Control: Adjusted API calls + added testcases for setting the current working directory. bugref:8053

File:
1 edited

Legend:

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

    r99102 r99128  
    381381    Has a default timeout of 5 minutes (for safety).
    382382    """
    383     def __init__(self, sCmd = "", asArgs = None, aEnv = None, afFlags = None,             # pylint: disable=too-many-arguments
     383    def __init__(self, sCmd = "", sCwd = "", asArgs = None, aEnv = None, afFlags = None,             # pylint: disable=too-many-arguments
    384384                 timeoutMS = 5 * 60 * 1000, oCreds = None, fWaitForExit = True):
    385385        tdTestGuestCtrlBase.__init__(self, oCreds = oCreds);
    386386        self.sCmd = sCmd;
     387        self.sCwd = sCwd;
    387388        self.asArgs = asArgs if asArgs is not None else [sCmd,];
    388389        self.aEnv = aEnv;
     
    21642165                    if fUseDirList:
    21652166                        fRc = reporter.errorXcpt('Error listing directory "%s" (cEntriesToRead=%d):' % \
    2166                             (oDir.sPath, cEntriesToRead));
     2167                                                 (oDir.sPath, cEntriesToRead));
    21672168                    else:
    21682169                        fRc = reporter.errorXcpt('Error reading directory "%s":' % (oDir.sPath));
     
    22142215                        if oFsObj.sName != sName:
    22152216                            fRc = reporter.error('%s: expected name "%s", got "%s" instead!' % \
    2216                                 (oFsObj.sPath, oFsObj.sName, sName,));
     2217                                                 (oFsObj.sPath, oFsObj.sName, sName,));
    22172218
    22182219                        # Check the size if a file.
    22192220                        if isinstance(oFsObj, testfileset.TestFile) and cbFile != oFsObj.cbContent:
    22202221                            fRc = reporter.error('%s: expected size %s, got %s instead!' % \
    2221                                 (oFsObj.sPath, oFsObj.cbContent, cbFile,));
     2222                                                 (oFsObj.sPath, oFsObj.cbContent, cbFile,));
    22222223
    22232224                        ## @todo check timestamps and attributes.
     
    23182319                      % (oTest.sCmd, oTest.afFlags, oTest.timeoutMS, limitString(oTest.asArgs), limitString(oTest.aEnv),));
    23192320        try:
    2320             oProcess = oGuestSession.processCreate(oTest.sCmd,
    2321                                                    oTest.asArgs if self.oTstDrv.fpApiVer >= 5.0 else oTest.asArgs[1:],
    2322                                                    oTest.aEnv, oTest.afFlags, oTest.timeoutMS);
     2321            if self.oTstDrv.fpApiVer >= 7.1:
     2322                oProcess = oGuestSession.processCreate(oTest.sCmd, oTest.sCwd,
     2323                                                       oTest.asArgs if self.oTstDrv.fpApiVer >= 5.0 else oTest.asArgs[1:],
     2324                                                       oTest.aEnv, oTest.afFlags, oTest.timeoutMS);
     2325            else:
     2326                oProcess = oGuestSession.processCreate(oTest.sCmd,
     2327                                                       oTest.asArgs if self.oTstDrv.fpApiVer >= 5.0 else oTest.asArgs[1:],
     2328                                                       oTest.aEnv, oTest.afFlags, oTest.timeoutMS);
    23232329        except:
    23242330            reporter.maybeErrXcpt(fIsError, 'type=%s, asArgs=%s' % (type(oTest.asArgs), oTest.asArgs,));
     
    28812887            try:
    28822888                reporter.log2('Starting stale process #%d...' % (i));
    2883                 oGuestSession.processCreate(sShell,
    2884                                             asArgs if self.oTstDrv.fpApiVer >= 5.0 else asArgs[1:], [],
    2885                                             [ vboxcon.ProcessCreateFlag_WaitForStdOut ], 30 * 1000);
     2889                if self.oTstDrv.fpApiVer >= 7.1:
     2890                    oGuestSession.processCreate(sShell, "",
     2891                                                asArgs if self.oTstDrv.fpApiVer >= 5.0 else asArgs[1:], [],
     2892                                                [ vboxcon.ProcessCreateFlag_WaitForStdOut ], 30 * 1000);
     2893                else:
     2894                    oGuestSession.processCreate(sShell,
     2895                                                asArgs if self.oTstDrv.fpApiVer >= 5.0 else asArgs[1:], [],
     2896                                                [ vboxcon.ProcessCreateFlag_WaitForStdOut ], 30 * 1000);
    28862897                # Note: Not keeping a process reference from the created process above is intentional and part of the test!
    28872898
     
    29152926                try:
    29162927                    reporter.log2('Starting non-stale process #%d...' % (i));
    2917                     oCurProc = oGuestSession.processCreate(sShell, asArgs if self.oTstDrv.fpApiVer >= 5.0 else asArgs[1:],
    2918                                                            [], [], 0); # Infinite timeout.
     2928                    if self.oTstDrv.fpApiVer >= 7.1:
     2929                        oCurProc = oGuestSession.processCreate(sShell, "", asArgs if self.oTstDrv.fpApiVer >= 5.0 else asArgs[1:],
     2930                                                               [], [], 0); # Infinite timeout.
     2931                    else:
     2932                        oCurProc = oGuestSession.processCreate(sShell, asArgs if self.oTstDrv.fpApiVer >= 5.0 else asArgs[1:],
     2933                                                               [], [], 0); # Infinite timeout.
    29192934                    aoProcs.append(oCurProc);
    29202935                except:
     
    29682983                try:
    29692984                    reporter.log2('Starting blocking process #%d...' % (i));
    2970                     oCurProc = oGuestSession.processCreate(sCmd, asArgs if self.oTstDrv.fpApiVer >= 5.0 else asArgs[1:],
    2971                                                            [],  [], 30 * 1000);
     2985                    if self.oTstDrv.fpApiVer >= 7.1:
     2986                        oCurProc = oGuestSession.processCreate(sCmd, "", asArgs if self.oTstDrv.fpApiVer >= 5.0 else asArgs[1:],
     2987                                                               [],  [], 30 * 1000);
     2988                    else:
     2989                        oCurProc = oGuestSession.processCreate(sCmd, asArgs if self.oTstDrv.fpApiVer >= 5.0 else asArgs[1:],
     2990                                                               [],  [], 30 * 1000);
    29722991                    # Note: Use a timeout in the call above for not letting the stale processes
    29732992                    #       hanging around forever.  This can happen if the installed Guest Additions
     
    30423061        sShellOpt       = '/C' if oTestVm.isWindows() or oTestVm.isOS2() else '-c';
    30433062        sSystemDir      = self.oTstDrv.getGuestSystemDir(oTestVm);
     3063        sTempDir        = self oTstDrv.getGuestTempDir(oTestVm);
    30443064        sFileForReading = self.oTstDrv.getGuestSystemFileForReading(oTestVm);
    30453065        if oTestVm.isWindows() or oTestVm.isOS2():
     
    31013121                [ tdTestExec(sCmd = sImageOut, asArgs = [ sImageOut, '/C', 'dir', '/S', 'stdouterr-non-existing' ]),
    31023122                  tdTestResultExec(fRc = True, iExitCode = 1) ],
     3123                # Current working directory set (VBox >= 7.1).
     3124                [ tdTestExec(sCmd = sImageOut, sCwd = sTempDir, asArgs = [ sImageOut, '/C', 'dir', '/S', sSystemDir ]),
     3125                  tdTestResultExec(fRc = True) ],
    31033126            ];
    31043127            # atExec.extend([
     
    31503173                [ tdTestExec(sCmd = sImageOut, asArgs = [ sImageOut, 'stdouterr-non-existing' ]),
    31513174                  tdTestResultExec(fRc = True, iExitCode = 2) ],
     3175                # Current working directory set (VBox >= 7.1).
     3176                [ tdTestExec(sCmd = sImageOut, sCwd = sTempDir, asArgs = [ sImageOut, '-R', sSystemDir ]),
     3177                  tdTestResultExec(fRc = True) ],
    31523178            ];
    31533179            # atExec.extend([
     
    33923418        afFlags = [];
    33933419        try:
    3394             oGuestProcess = oGuestSession.processCreate(sImage,
    3395                                                         asArgs if self.oTstDrv.fpApiVer >= 5.0 else asArgs[1:], aEnv, afFlags,
    3396                                                         30 * 1000);
     3420            if self.oTstDrv.fpApiVer >= 7.1:
     3421                oGuestProcess = oGuestSession.processCreate(sImage, "",
     3422                                                            asArgs if self.oTstDrv.fpApiVer >= 5.0 else asArgs[1:], aEnv, afFlags,
     3423                                                            30 * 1000);
     3424            else:
     3425                oGuestProcess = oGuestSession.processCreate(sImage,
     3426                                                            asArgs if self.oTstDrv.fpApiVer >= 5.0 else asArgs[1:], aEnv, afFlags,
     3427                                                            30 * 1000);
    33973428        except:
    33983429            fRc = reporter.error('Failed to start shell process (%s)' % (sImage,));
     
    35083539        fRc = True;
    35093540        try:
    3510             oCurProcess = oGuestSession.processCreate(sShell, [sShell,] if self.oTstDrv.fpApiVer >= 5.0 else [],
    3511                                                       [], [], 30 * 1000);
     3541            if self.oTstDrv.fpApiVer >= 7.1:
     3542                oCurProcess = oGuestSession.processCreate(sShell, "", [sShell,] if self.oTstDrv.fpApiVer >= 5.0 else [],
     3543                                                          [], [], 30 * 1000);
     3544            else:
     3545                oCurProcess = oGuestSession.processCreate(sShell, [sShell,] if self.oTstDrv.fpApiVer >= 5.0 else [],
     3546                                                          [], [], 30 * 1000);
    35123547        except:
    35133548            fRc = reporter.errorXcpt();
     
    35463581            #
    35473582            try:
    3548                 oCurProcess = oGuestSession.processCreate(sShell, [sShell,] if self.oTstDrv.fpApiVer >= 5.0 else [],
     3583                if self.oTstDrv.fpApiVer >= 7.1:
     3584                    oCurProcess = oGuestSession.processCreate(sShell, "", [sShell,] if self.oTstDrv.fpApiVer >= 5.0 else [],
    35493585                                                          [], [], 3 * 1000);
     3586                else:
     3587                    oCurProcess = oGuestSession.processCreate(sShell, [sShell,] if self.oTstDrv.fpApiVer >= 5.0 else [],
     3588                                                              [], [], 3 * 1000);
    35503589            except:
    35513590                fRc = reporter.errorXcpt();
     
    55385577
    55395578        for _ in xrange(100):
    5540             oProc = oGuestSession.processCreate(sCmd, asArgs if self.fpApiVer >= 5.0 else asArgs[1:],
     5579            oProc = oGuestSession.processCreate(sCmd, "", asArgs if self.fpApiVer >= 5.0 else asArgs[1:],
    55415580                                                aEnv, afFlags, 30 * 1000);
    55425581
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