994 def __checkDiff(self):
995
996 self.summary += [
997 "=" * 80,
998 "::: Comparing POOL files...",
999 " ref : %s" % self.refFile._fileInfos['name'],
1000 " chk : %s" % self.chkFile._fileInfos['name'],
1001 "-" * 80,
1002 ]
1003
1004 if self.chkFile.dataHeader.nEntries != \
1005 self.refFile.dataHeader.nEntries :
1006 self.summary += [
1007 "## WARNING: files don't have the same number of entries !!",
1008 " ref : %r" % self.refFile.dataHeader.nEntries,
1009 " chk : %r" % self.chkFile.dataHeader.nEntries,
1010 ]
1011
1012 refNames = sorted( [d.name for d in self.refFile.data] )
1013 chkNames = sorted( [d.name for d in self.chkFile.data] )
1014
1015 if chkNames != refNames:
1016 self.summary += [
1017 "## ERROR: files don't have the same content !!",
1018 ]
1019 addNames = [ n for n in chkNames if n not in refNames ]
1020 if len( addNames ) > 0:
1021 self.summary += [ "## collections in 'chk' and not in 'ref'" ]
1022 for n in addNames:
1023 self.summary += [ " + %s" % n ]
1024 subNames = [ n for n in refNames if n not in chkNames ]
1025 if len( subNames ) > 0:
1026 self.summary += [ "## collections in 'ref' and not in 'chk'" ]
1027 for n in subNames:
1028 self.summary += [ " - %s" % n ]
1029 self.allGood = False
1030 pass
1031
1032 if len(self.ignList) > 0:
1033 self.summary += [ "## Ignoring the following:" ]
1034 for n in self.ignList:
1035 self.summary += [ " %s" % n ]
1036
1037 commonContent = [ d for d in chkNames if (d in refNames and d not in self.ignList)]
1038
1039 if not self.allGood:
1040 self.summary += [ "=" * 80 ]
1041 self.summary += [ "::: comparing common content (mem-size / disk-size)..." ]
1042
1043 for name in commonContent:
1044 chkMemSize = self.chkFile.poolRecord(name).memSize
1045 refMemSize = self.refFile.poolRecord(name).memSize
1046 chkDiskSize = self.chkFile.poolRecord(name).diskSize
1047 refDiskSize = self.refFile.poolRecord(name).diskSize
1048
1049 if chkMemSize != refMemSize or (self.strict and chkDiskSize != refDiskSize):
1050 self.summary += [
1051 "[ERR] %12.3f / %12.3f kb (ref) ==> %12.3f / %12.3f kb (chk) | %s" % \
1052 ( refMemSize,refDiskSize,chkMemSize,chkDiskSize, name )
1053 ]
1054 self.allGood = False
1055 elif self.verbose:
1056 self.summary += [
1057 " [OK] %12.3f/%12.3f kb | %s" % \
1058 ( chkMemSize, chkDiskSize, name )
1059 ]
1060
1061 self.summary += [ "=" * 80 ]
1062
1063
1064 if self.allGood: self.summary += [ "## Comparison : [OK]" ]
1065 else: self.summary += [ "## Comparison : [ERR]" ]
1066
1067 return self.allGood
1068