Merge pull request #2300 from reactormonk/better-tester-messages
fixed tester back up
This commit is contained in:
commit
3e82941f25
1 changed files with 26 additions and 23 deletions
|
|
@ -142,28 +142,23 @@ proc generatedFile(path, name: string, target: TTarget): string =
|
||||||
name.changeFileExt(ext)
|
name.changeFileExt(ext)
|
||||||
|
|
||||||
proc codegenCheck(test: TTest, check: string, given: var TSpec, r: var TResults) =
|
proc codegenCheck(test: TTest, check: string, given: var TSpec, r: var TResults) =
|
||||||
if check.len > 0:
|
try:
|
||||||
try:
|
let (path, name, ext2) = test.name.splitFile
|
||||||
let (path, name, ext2) = test.name.splitFile
|
let genFile = generatedFile(path, name, test.target)
|
||||||
let genFile = generatedFile(path, name, test.target)
|
echo genFile
|
||||||
echo genFile
|
let contents = readFile(genFile).string
|
||||||
let contents = readFile(genFile).string
|
if contents.find(check.peg) < 0:
|
||||||
if contents.find(check.peg) < 0:
|
given.err = reCodegenFailure
|
||||||
given.err = reCodegenFailure
|
except ValueError:
|
||||||
except ValueError:
|
given.err = reInvalidPeg
|
||||||
given.err = reInvalidPeg
|
except IOError:
|
||||||
except IOError:
|
given.err = reCodeNotFound
|
||||||
given.err = reCodeNotFound
|
|
||||||
r.addResult(test, "", given.msg, given.err)
|
|
||||||
|
|
||||||
proc nimoutCheck(test: TTest; expectedNimout: string; given: var TSpec, r: var TResults) =
|
proc nimoutCheck(test: TTest; expectedNimout: string; given: var TSpec, r: var TResults) =
|
||||||
if expectedNimout.len > 0:
|
let exp = expectedNimout.strip.replace("\C\L", "\L")
|
||||||
let exp = expectedNimout.strip.replace("\C\L", "\L")
|
let giv = given.nimout.strip.replace("\C\L", "\L")
|
||||||
let giv = given.nimout.strip.replace("\C\L", "\L")
|
if exp notin giv:
|
||||||
if exp notin giv:
|
given.err = reMsgsDiffer
|
||||||
given.err = reMsgsDiffer
|
|
||||||
r.addResult(test, exp, giv, given.err)
|
|
||||||
|
|
||||||
|
|
||||||
proc makeDeterministic(s: string): string =
|
proc makeDeterministic(s: string): string =
|
||||||
var x = splitLines(s)
|
var x = splitLines(s)
|
||||||
|
|
@ -171,11 +166,19 @@ proc makeDeterministic(s: string): string =
|
||||||
result = join(x, "\n")
|
result = join(x, "\n")
|
||||||
|
|
||||||
proc compilerOutputTests(test: TTest, given: var TSpec, expected: TSpec, r: var TResults) =
|
proc compilerOutputTests(test: TTest, given: var TSpec, expected: TSpec, r: var TResults) =
|
||||||
|
var expectedmsg: string = ""
|
||||||
|
var givenmsg: string = ""
|
||||||
if given.err == reSuccess:
|
if given.err == reSuccess:
|
||||||
codegenCheck(test, expected.ccodeCheck, given, r)
|
if expected.ccodeCheck.len > 0:
|
||||||
nimoutCheck(test, expected.nimout, given, r)
|
codegenCheck(test, expectedmsg, given, r)
|
||||||
|
expectedmsg = expected.ccodeCheck
|
||||||
|
givenmsg = given.msg
|
||||||
|
if expected.nimout.len > 0:
|
||||||
|
expectedmsg = expected.nimout
|
||||||
|
givenmsg = given.nimout.strip
|
||||||
|
nimoutCheck(test, expectedmsg, given, r)
|
||||||
if given.err == reSuccess: inc(r.passed)
|
if given.err == reSuccess: inc(r.passed)
|
||||||
|
r.addResult(test, expectedmsg, givenmsg, given.err)
|
||||||
|
|
||||||
proc testSpec(r: var TResults, test: TTest) =
|
proc testSpec(r: var TResults, test: TTest) =
|
||||||
# major entry point for a single test
|
# major entry point for a single test
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue