Fix AccurateRip summary reporting

The values stored in variables _inARDatabase and _accuratelyRipped were double incremented when both AR v1 and AR V2 entries were present e/o matched, leading to a wrong calculation and potentially erroneous summary reporting.
After this fix, in case of double matches only one is counted against each track.
This commit is contained in:
JoeLametta
2018-10-17 12:00:00 +00:00
parent 021e621f84
commit a1e6d6040b

View File

@@ -116,7 +116,10 @@ class WhipperLogger(result.Logger):
for t in ripResult.tracks: for t in ripResult.tracks:
if not t.filename: if not t.filename:
continue continue
lines.extend(self.trackLog(t)) track_lines, ARDB_entry, ARDB_match = self.trackLog(t)
self._inARDatabase += int(ARDB_entry)
self._accuratelyRipped += int(ARDB_match)
lines.extend(track_lines)
lines.append("") lines.append("")
duration += t.testduration + t.copyduration duration += t.testduration + t.copyduration
@@ -204,23 +207,25 @@ class WhipperLogger(result.Logger):
lines.append(" Copy CRC: %08X" % trackResult.copycrc) lines.append(" Copy CRC: %08X" % trackResult.copycrc)
# AccurateRip track status # AccurateRip track status
for v in ('v1', 'v2'): ARDB_entry = 0
if trackResult.AR[v]['DBCRC']: ARDB_match = 0
for v in ("v1", "v2"):
if trackResult.AR[v]["DBCRC"]:
lines.append(" AccurateRip %s:" % v) lines.append(" AccurateRip %s:" % v)
self._inARDatabase += 1 ARDB_entry += 1
if trackResult.AR[v]['CRC'] == trackResult.AR[v]['DBCRC']: if trackResult.AR[v]["CRC"] == trackResult.AR[v]["DBCRC"]:
lines.append(" Result: Found, exact match") lines.append(" Result: Found, exact match")
self._accuratelyRipped += 1 ARDB_match += 1
else: else:
lines.append(" Result: Found, NO exact match") lines.append(" Result: Found, NO exact match")
lines.append( lines.append(
" Confidence: %d" % trackResult.AR[v]['DBConfidence'] " Confidence: %d" % trackResult.AR[v]["DBConfidence"]
) )
lines.append( lines.append(
" Local CRC: %s" % trackResult.AR[v]['CRC'].upper() " Local CRC: %s" % trackResult.AR[v]["CRC"].upper()
) )
lines.append( lines.append(
" Remote CRC: %s" % trackResult.AR[v]['DBCRC'].upper() " Remote CRC: %s" % trackResult.AR[v]["DBCRC"].upper()
) )
elif trackResult.number != 0: elif trackResult.number != 0:
lines.append(" AccurateRip %s:" % v) lines.append(" AccurateRip %s:" % v)
@@ -234,4 +239,4 @@ class WhipperLogger(result.Logger):
else: else:
self._errors = True self._errors = True
lines.append(" Status: Error, CRC mismatch") lines.append(" Status: Error, CRC mismatch")
return lines return lines, bool(ARDB_entry), bool(ARDB_match)