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