VirtualBox

Ignore:
Timestamp:
Jan 10, 2018 3:49:10 PM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
120149
Message:

ValidationKit: More python 3 adjustments.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/testdriver/txsclient.py

    r70508 r70521  
    3030
    3131# Standard Python imports.
    32 import array
    33 import errno
    34 import os
    35 import select
    36 import socket
    37 import threading
    38 import time
    39 import types
    40 import zlib
    41 import uuid
     32import array;
     33import errno;
     34import os;
     35import select;
     36import socket;
     37import sys;
     38import threading;
     39import time;
     40import types;
     41import zlib;
     42import uuid;
    4243
    4344# Validation Kit imports.
    44 from common     import utils;
    45 from testdriver import base;
    46 from testdriver import reporter;
     45from common             import utils;
     46from testdriver         import base;
     47from testdriver         import reporter;
    4748from testdriver.base    import TdTaskBase;
     49
     50# Python 3 hacks:
     51if sys.version_info[0] >= 3:
     52    long = int;     # pylint: disable=redefined-builtin,invalid-name
    4853
    4954#
     
    118123    """Encodes the u32 value as a little endian byte (B) array."""
    119124    return array.array('B', \
    120                        (  u32             % 256, \
    121                          (u32 / 256)      % 256, \
    122                          (u32 / 65536)    % 256, \
    123                          (u32 / 16777216) % 256) );
     125                       (  u32              % 256, \
     126                         (u32 // 256)      % 256, \
     127                         (u32 // 65536)    % 256, \
     128                         (u32 // 16777216) % 256) );
    124129
    125130
     
    352357        for o in aoPayload:
    353358            try:
    354                 if isinstance(o, basestring):
    355                     # the primitive approach...
    356                     sUtf8 = o.encode('utf_8');
    357                     for i in range(0, len(sUtf8)):
    358                         abPayload.append(ord(sUtf8[i]))
     359                if utils.isString(o):
     360                    if sys.version_info[0] >= 3:
     361                        abPayload.extend(o.encode('utf_8'));
     362                    else:
     363                        # the primitive approach...
     364                        sUtf8 = o.encode('utf_8');
     365                        for i in range(0, len(sUtf8)):
     366                            abPayload.append(ord(sUtf8[i]))
    359367                    abPayload.append(0);
    360368                elif isinstance(o, types.LongType):
     
    724732            aoPayload.append('%s' % (sPutEnv));
    725733        for o in (oStdIn, oStdOut, oStdErr, oTestPipe):
    726             if isinstance(o, basestring):
     734            if utils.isString(o):
    727735                aoPayload.append(o);
    728736            elif o is not None:
     
    748756                if     msPendingInputReply is None \
    749757                   and oStdIn is not None \
    750                    and not isinstance(oStdIn, basestring):
     758                   and not utils.isString(oStdIn):
    751759                    try:
    752760                        sInput = oStdIn.read(65536);
     
    910918        # Cleanup.
    911919        for o in (oStdIn, oStdOut, oStdErr, oTestPipe):
    912             if o is not None and not isinstance(o, basestring):
     920            if o is not None and not utils.isString(o):
    913921                del o.uTxsClientCrc32;      # pylint: disable=E1103
    914922                # Make sure all files are closed
     
    10841092                # Convert to array - this is silly!
    10851093                abBuf = array.array('B');
    1086                 for i, _ in enumerate(sRaw):
    1087                     abBuf.append(ord(sRaw[i]));
     1094                if utils.isString(sRaw):
     1095                    for i, _ in enumerate(sRaw):
     1096                        abBuf.append(ord(sRaw[i]));
     1097                else:
     1098                    abBuf.extend(sRaw);
    10881099                sRaw = None;
    10891100
     
    14061417    #
    14071418
    1408     def asyncMkDir(self, sRemoteDir, fMode = 0700, cMsTimeout = 30000, fIgnoreErrors = False):
     1419    def asyncMkDir(self, sRemoteDir, fMode = 0o700, cMsTimeout = 30000, fIgnoreErrors = False):
    14091420        """
    14101421        Initiates a mkdir task.
     
    14161427        return self.startTask(cMsTimeout, fIgnoreErrors, "mkDir", self.taskMkDir, (sRemoteDir, long(fMode)));
    14171428
    1418     def syncMkDir(self, sRemoteDir, fMode = 0700, cMsTimeout = 30000, fIgnoreErrors = False):
     1429    def syncMkDir(self, sRemoteDir, fMode = 0o700, cMsTimeout = 30000, fIgnoreErrors = False):
    14191430        """Synchronous version."""
    14201431        return self.asyncToSync(self.asyncMkDir, sRemoteDir, long(fMode), cMsTimeout, fIgnoreErrors);
    14211432
    1422     def asyncMkDirPath(self, sRemoteDir, fMode = 0700, cMsTimeout = 30000, fIgnoreErrors = False):
     1433    def asyncMkDirPath(self, sRemoteDir, fMode = 0o700, cMsTimeout = 30000, fIgnoreErrors = False):
    14231434        """
    14241435        Initiates a mkdir -p task.
     
    14301441        return self.startTask(cMsTimeout, fIgnoreErrors, "mkDirPath", self.taskMkDirPath, (sRemoteDir, long(fMode)));
    14311442
    1432     def syncMkDirPath(self, sRemoteDir, fMode = 0700, cMsTimeout = 30000, fIgnoreErrors = False):
     1443    def syncMkDirPath(self, sRemoteDir, fMode = 0o700, cMsTimeout = 30000, fIgnoreErrors = False):
    14331444        """Synchronous version."""
    14341445        return self.asyncToSync(self.asyncMkDirPath, sRemoteDir, long(fMode), cMsTimeout, fIgnoreErrors);
     
    16591670    def __isInProgressXcpt(self, oXcpt):
    16601671        """ In progress exception? """
     1672        reporter.log("oXcpt=%s" % (oXcpt)) ## TMP TMP
     1673        reporter.log("dir(oXcpt)=%s" % (dir(oXcpt))) ## TMP TMP
    16611674        try:
    16621675            if isinstance(oXcpt, socket.error):
    16631676                try:
    1664                     if oXcpt[0] == errno.EINPROGRESS:
     1677                    if oXcpt.errno == errno.EINPROGRESS:
    16651678                        return True;
    16661679                except: pass;
    16671680                # Windows?
    16681681                try:
    1669                     if oXcpt[0] == errno.EWOULDBLOCK:
     1682                    if oXcpt.errno == errno.EWOULDBLOCK:
    16701683                        return True;
    16711684                except: pass;
     
    16791692            if isinstance(oXcpt, socket.error):
    16801693                try:
    1681                     if oXcpt[0] == errno.EWOULDBLOCK:
     1694                    if oXcpt.errno == errno.EWOULDBLOCK:
    16821695                        return True;
    16831696                except: pass;
    16841697                try:
    1685                     if oXcpt[0] == errno.EAGAIN:
     1698                    if oXcpt.errno == errno.EAGAIN:
    16861699                        return True;
    16871700                except: pass;
     
    16951708            if isinstance(oXcpt, socket.error):
    16961709                try:
    1697                     if oXcpt[0] == errno.ECONNRESET:
     1710                    if oXcpt.errno == errno.ECONNRESET:
    16981711                        return True;
    16991712                except: pass;
    17001713                try:
    1701                     if oXcpt[0] == errno.ENETRESET:
     1714                    if oXcpt.errno == errno.ENETRESET:
    17021715                        return True;
    17031716                except: pass;
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