diff --git a/Tools/PyUtils/bin/diffPoolFiles.py b/Tools/PyUtils/bin/diffPoolFiles.py index 222bdc139d87bc737648f0e12537dec02c057b16..0591497957ade3e6df9b0859625a7580278329d3 100755 --- a/Tools/PyUtils/bin/diffPoolFiles.py +++ b/Tools/PyUtils/bin/diffPoolFiles.py @@ -37,6 +37,12 @@ if __name__ == "__main__": dest = "verbose", default = False, help = "Switch to activate verbose printout" ) + parser.add_option( "-s", + "--strict", + action = "store_true", + dest = "strict", + default = False, + help = "Compare both memSize and diskSize" ) (options, args) = parser.parse_args() @@ -60,6 +66,8 @@ if __name__ == "__main__": import PyUtils.PoolFile as PF diff = PF.DiffFiles( refFileName = refFileName, chkFileName = chkFileName, - verbose = options.verbose ) + verbose = options.verbose, + strict = options.strict ) + diff.printSummary() sys.exit(diff.status()) diff --git a/Tools/PyUtils/python/PoolFile.py b/Tools/PyUtils/python/PoolFile.py index ea94557df3309337c18760ca6c6a97f382bcbff6..999b22f84fd4ad5764f2d31b4b04ed77c2c05ba7 100644 --- a/Tools/PyUtils/python/PoolFile.py +++ b/Tools/PyUtils/python/PoolFile.py @@ -967,10 +967,11 @@ class DiffFiles(object): terms of containers' content and containers' sizes """ - def __init__(self, refFileName, chkFileName, verbose = False, ignoreList = None): + def __init__(self, refFileName, chkFileName, verbose = False, ignoreList = None, strict = False): object.__init__(self) self.verbose = verbose + self.strict = strict refFileName = os.path.expandvars( os.path.expanduser( refFileName ) ) chkFileName = os.path.expandvars( os.path.expanduser( chkFileName ) ) @@ -1049,21 +1050,24 @@ class DiffFiles(object): if not self.allGood: self.summary += [ "=" * 80 ] - self.summary += [ "::: comparing common content (mem-size)..." ] + self.summary += [ "::: comparing common content (mem-size / disk-size)..." ] for name in commonContent: chkMemSize = self.chkFile.poolRecord(name).memSize refMemSize = self.refFile.poolRecord(name).memSize - if chkMemSize != refMemSize: + chkDiskSize = self.chkFile.poolRecord(name).diskSize + refDiskSize = self.refFile.poolRecord(name).diskSize + + if chkMemSize != refMemSize or (self.strict and chkDiskSize != refDiskSize): self.summary += [ - "[ERR] %12.3f kb (ref) ==> %12.3f kb (chk) | %s" % \ - ( refMemSize, chkMemSize, name ) + "[ERR] %12.3f / %12.3f kb (ref) ==> %12.3f / %12.3f kb (chk) | %s" % \ + ( refMemSize,refDiskSize,chkMemSize,chkDiskSize, name ) ] self.allGood = False elif self.verbose: self.summary += [ - " [OK] %12.3f kb | %s" % \ - ( chkMemSize, name ) + " [OK] %12.3f/%12.3f kb | %s" % \ + ( chkMemSize, chkDiskSize, name ) ] self.summary += [ "=" * 80 ]