@@ -371,12 +371,20 @@ proc checkForInlineErrors(r: var TResults, expected, given: TSpec, test: TTest,
371371 r.addResult (test, target, " " , given.msg, reSuccess)
372372 inc (r.passed)
373373
374+ proc nimoutCheck (expected, given: TSpec ): bool =
375+ result = true
376+ if expected.nimoutFull:
377+ if expected.nimout != given.nimout:
378+ result = false
379+ elif expected.nimout.len > 0 and not greedyOrderedSubsetLines (expected.nimout, given.nimout):
380+ result = false
381+
374382proc cmpMsgs (r: var TResults , expected, given: TSpec , test: TTest , target: TTarget ) =
375383 if expected.inlineErrors.len > 0 :
376384 checkForInlineErrors (r, expected, given, test, target)
377385 elif strip (expected.msg) notin strip (given.msg):
378386 r.addResult (test, target, expected.msg, given.msg, reMsgsDiffer)
379- elif expected.nimout.len > 0 and not greedyOrderedSubsetLines (expected.nimout , given.nimout ):
387+ elif not nimoutCheck (expected, given):
380388 r.addResult (test, target, expected.nimout, given.nimout, reMsgsDiffer)
381389 elif extractFilename (expected.file) != extractFilename (given.file) and
382390 " internal error:" notin expected.msg:
@@ -424,10 +432,6 @@ proc codegenCheck(test: TTest, target: TTarget, spec: TSpec, expectedMsg: var st
424432 given.err = reCodeNotFound
425433 echo getCurrentExceptionMsg ()
426434
427- proc nimoutCheck (test: TTest ; expectedNimout: string ; given: var TSpec ) =
428- if not greedyOrderedSubsetLines (expectedNimout, given.nimout):
429- given.err = reMsgsDiffer
430-
431435proc compilerOutputTests (test: TTest , target: TTarget , given: var TSpec ,
432436 expected: TSpec ; r: var TResults ) =
433437 var expectedmsg: string = " "
@@ -436,10 +440,10 @@ proc compilerOutputTests(test: TTest, target: TTarget, given: var TSpec,
436440 if expected.needsCodegenCheck:
437441 codegenCheck (test, target, expected, expectedmsg, given)
438442 givenmsg = given.msg
439- if expected.nimout.len > 0 :
443+ if not nimoutCheck (expected, given):
444+ given.err = reMsgsDiffer
440445 expectedmsg = expected.nimout
441446 givenmsg = given.nimout.strip
442- nimoutCheck (test, expectedmsg, given)
443447 else :
444448 givenmsg = " $ " & given.cmd & '\n ' & given.nimout
445449 if given.err == reSuccess: inc (r.passed)
0 commit comments