def dprint(self, sMessage): """ Prints to debug log (usually apache error log). """ if config.g_kfSrvGlueDebug is True: if config.g_kfSrvGlueDebugTS is False: self._oDbgFile.write(sMessage); if not sMessage.endswith('\n'): self._oDbgFile.write('\n'); else: tsNow = utils.timestampMilli(); tsReq = tsNow - (self.tsStart / 1000000) for sLine in sMessage.split('\n'): self._oDbgFile.write('%s/%03u: %s\n' % (tsNow, tsReq, sLine,)); return True;
def __init__( self, fDosStyle, sBasePath, sSubDir, # pylint: disable=too-many-arguments asCompatibleWith=None, # List of getHostOs values to the names must be compatible with. oRngFileSizes=xrange(0, 16384), oRngManyFiles=xrange(128, 512), oRngTreeFiles=xrange(128, 384), oRngTreeDepth=xrange(92, 256), oRngTreeDirs=xrange(2, 16), cchMaxPath=230, cchMaxName=230, uSeed=None): ## @name Parameters ## @{ self.fDosStyle = fDosStyle self.sMinStyle = 'win' if fDosStyle else 'linux' if asCompatibleWith is not None: for sOs in asCompatibleWith: assert sOs in ( 'win', 'os2', 'darwin', 'linux', 'solaris', ), sOs if 'os2' in asCompatibleWith: self.sMinStyle = 'os2' elif 'win' in asCompatibleWith: self.sMinStyle = 'win' self.sBasePath = sBasePath self.sSubDir = sSubDir self.oRngFileSizes = oRngFileSizes self.oRngManyFiles = oRngManyFiles self.oRngTreeFiles = oRngTreeFiles self.oRngTreeDepth = oRngTreeDepth self.oRngTreeDirs = oRngTreeDirs self.cchMaxPath = cchMaxPath self.cchMaxName = cchMaxName ## @} ## @name Charset stuff ## @todo allow more chars for unix hosts + guests. ## @todo include unicode stuff, except on OS/2 and DOS. ## @{ ## The filename charset. self.sFileCharset = string.printable ## Set of characters that should not trail a guest filename. self.sReservedTrailing = self.ksReservedTrailingWinOS2 if self.sMinStyle in ('win', 'os2'): for ch in self.ksReservedWinOS2: self.sFileCharset = self.sFileCharset.replace(ch, '') else: self.sReservedTrailing = self.ksReservedTrailingUnix for ch in self.ksReservedUnix: self.sFileCharset = self.sFileCharset.replace(ch, '') # More spaces and dot: self.sFileCharset += ' ...' ## @} ## The root directory. self.oRoot = None # type: TestDir; ## An empty directory (under root). self.oEmptyDir = None # type: TestDir; ## A directory with a lot of files in it. self.oManyDir = None # type: TestDir; ## A directory with a mixed tree structure under it. self.oTreeDir = None # type: TestDir; ## Number of files in oTreeDir. self.cTreeFiles = 0 ## Number of directories under oTreeDir. self.cTreeDirs = 0 ## Number of other file types under oTreeDir. self.cTreeOthers = 0 ## All directories in creation order. self.aoDirs = [] # type: list(TestDir); ## All files in creation order. self.aoFiles = [] # type: list(TestFile); ## Path to object lookup. self.dPaths = {} # type: dict(str, TestFsObj); # # Do the creating. # self.uSeed = uSeed if uSeed is not None else utils.timestampMilli() self.oRandom = random.Random() self.oRandom.seed(self.uSeed) reporter.log('prepareGuestForTesting: random seed %s' % (self.uSeed, )) self.__createTestStuff()