THP: Create Error class for recording and reporting errors usefully

This commit is contained in:
Worros 2010-08-24 11:09:13 +08:00
parent 66da700df8
commit edae36d108

View File

@ -10,13 +10,19 @@ import Database
import SQL import SQL
import fpdb_import import fpdb_import
def error_report( filename, hand, stat, ghash, testhash, player):
print "Regression Test Error:"
print "\tFile: %s" % filename
print "\tStat: %s" % stat
print "\tPlayer: %s" % player
def compare(leaf, importer): class FpdbError:
def __init__(self):
self.errorcount = 0
def error_report(self, filename, hand, stat, ghash, testhash, player):
print "Regression Test Error:"
print "\tFile: %s" % filename
print "\tStat: %s" % stat
print "\tPlayer: %s" % player
self.errorcount += 1
def compare(leaf, importer, errors):
filename = leaf filename = leaf
#print "DEBUG: fileanme: %s" % filename #print "DEBUG: fileanme: %s" % filename
@ -52,21 +58,21 @@ def compare(leaf, importer):
pass pass
else: else:
# Stats don't match - Doh! # Stats don't match - Doh!
error_report(filename, hand, stat, ghash, testhash, p) errors.error_report(filename, hand, stat, ghash, testhash, p)
importer.clearFileList() importer.clearFileList()
def walk_testfiles(dir, function, importer): def walk_testfiles(dir, function, importer, errors):
"""Walks a directory, and executes a callback on each file """ """Walks a directory, and executes a callback on each file """
dir = os.path.abspath(dir) dir = os.path.abspath(dir)
for file in [file for file in os.listdir(dir) if not file in [".",".."]]: for file in [file for file in os.listdir(dir) if not file in [".",".."]]:
nfile = os.path.join(dir,file) nfile = os.path.join(dir,file)
if os.path.isdir(nfile): if os.path.isdir(nfile):
walk_testfiles(nfile, compare, importer) walk_testfiles(nfile, compare, importer, errors)
else: else:
compare(nfile, importer) compare(nfile, importer, errors)
def main(argv=None): def main(argv=None):
if argv is None: if argv is None:
@ -86,8 +92,14 @@ def main(argv=None):
importer.setThreads(-1) importer.setThreads(-1)
importer.setCallHud(False) importer.setCallHud(False)
importer.setFakeCacheHHC(True) importer.setFakeCacheHHC(True)
errors = FpdbError()
walk_testfiles("regression-test-files/cash/Stars/", compare, importer) walk_testfiles("regression-test-files/cash/Stars/", compare, importer, errors)
print "---------------------"
print "Total Errors: %d" % errors.errorcount
print "---------------------"
if __name__ == '__main__': if __name__ == '__main__':
sys.exit(main()) sys.exit(main())