960 def __checkDiff(self):
961
962 self.summary += [
963 "=" * 80,
964 "::: Comparing POOL files...",
965 " ref : %s" % self.refFile._fileInfos['name'],
966 " chk : %s" % self.chkFile._fileInfos['name'],
967 "-" * 80,
968 ]
969
970 if self.chkFile.dataHeader.nEntries != \
971 self.refFile.dataHeader.nEntries :
972 self.summary += [
973 "## WARNING: files don't have the same number of entries !!",
974 " ref : %r" % self.refFile.dataHeader.nEntries,
975 " chk : %r" % self.chkFile.dataHeader.nEntries,
976 ]
977
978 refNames = sorted( [d.name for d in self.refFile.data] )
979 chkNames = sorted( [d.name for d in self.chkFile.data] )
980
981 if chkNames != refNames:
982 self.summary += [
983 "## ERROR: files don't have the same content !!",
984 ]
985 addNames = [ n for n in chkNames if n not in refNames ]
986 if len( addNames ) > 0:
987 self.summary += [ "## collections in 'chk' and not in 'ref'" ]
988 for n in addNames:
989 self.summary += [ " + %s" % n ]
990 subNames = [ n for n in refNames if n not in chkNames ]
991 if len( subNames ) > 0:
992 self.summary += [ "## collections in 'ref' and not in 'chk'" ]
993 for n in subNames:
994 self.summary += [ " - %s" % n ]
995 self.allGood = False
996 pass
997
998 if len(self.ignList) > 0:
999 self.summary += [ "## Ignoring the following:" ]
1000 for n in self.ignList:
1001 self.summary += [ " %s" % n ]
1002
1003 commonContent = [ d for d in chkNames if (d in refNames and d not in self.ignList)]
1004
1005 if not self.allGood:
1006 self.summary += [ "=" * 80 ]
1007 self.summary += [ "::: comparing common content (mem-size / disk-size)..." ]
1008
1009 for name in commonContent:
1010 chkMemSize = self.chkFile.poolRecord(name).memSize
1011 refMemSize = self.refFile.poolRecord(name).memSize
1012 chkDiskSize = self.chkFile.poolRecord(name).diskSize
1013 refDiskSize = self.refFile.poolRecord(name).diskSize
1014
1015 if chkMemSize != refMemSize or (self.strict and chkDiskSize != refDiskSize):
1016 self.summary += [
1017 "[ERR] %12.3f / %12.3f kb (ref) ==> %12.3f / %12.3f kb (chk) | %s" % \
1018 ( refMemSize,refDiskSize,chkMemSize,chkDiskSize, name )
1019 ]
1020 self.allGood = False
1021 elif self.verbose:
1022 self.summary += [
1023 " [OK] %12.3f/%12.3f kb | %s" % \
1024 ( chkMemSize, chkDiskSize, name )
1025 ]
1026
1027 self.summary += [ "=" * 80 ]
1028
1029
1030 if self.allGood: self.summary += [ "## Comparison : [OK]" ]
1031 else: self.summary += [ "## Comparison : [ERR]" ]
1032
1033 return self.allGood
1034