@@ -61,11 +61,14 @@ abstract class DifferentialTest extends AnyFunSuite, TestCustomisation {
61
61
62
62
def interp (p : IRContext ): (InterpreterState , Trace ) = {
63
63
val interpreter = LayerInterpreter (tracingInterpreter(NormalInterpreter ), EffectsRLimit (instructionLimit))
64
- val initialState = InterpFuns .initProgState(NormalInterpreter )(p, InterpreterState ())
64
+ val initialState = (( InterpFuns .initProgState(NormalInterpreter )(p, InterpreterState ()), Trace .empty), 0 )
65
65
// Logger.setLevel(LogLevel.DEBUG)
66
- val r = BASILInterpreter (interpreter).run((initialState, Trace .empty), 0 )._1
67
- // Logger.setLevel(LogLevel.WARN)
68
- r
66
+
67
+ val main = p.program.mainProcedure
68
+ val r = InterpFuns
69
+ .callProcedure(interpreter)(main, InterpFuns .mainDefaultFunctionArguments(main))
70
+ .f(initialState)
71
+ r._1._1
69
72
}
70
73
71
74
val (initialRes, traceInit) = interp(initial)
@@ -83,11 +86,13 @@ abstract class DifferentialTest extends AnyFunSuite, TestCustomisation {
83
86
val initstdout =
84
87
initialRes.memoryState.getMem(" stdout" ).toList.sortBy(_._1.value).map(_._2.value.toChar).mkString(" " )
85
88
val comparstdout = result.memoryState.getMem(" stdout" ).toList.sortBy(_._1.value).map(_._2.value.toChar).mkString(" " )
86
- info(" STDOUT: \" " + initstdout + " \" " )
89
+ if (initstdout.nonEmpty) {
90
+ info(" STDOUT: \" " + initstdout + " \" " )
91
+ }
87
92
// Logger.info(initialRes.memoryState.getMem("stderr").toList.sortBy(_._1.value).map(_._2).mkString(""))
88
93
assert(initstdout == comparstdout)
89
- assert(initialRes.nextCmd == Stopped () )
90
- assert(result.nextCmd == Stopped () )
94
+ assert(normalTermination( initialRes.nextCmd), initialRes.nextCmd )
95
+ assert(normalTermination( result.nextCmd), initialRes.nextCmd )
91
96
assert(Set .empty == initialRes.memoryState.getMem(" mem" ).toSet.diff(result.memoryState.getMem(" mem" ).toSet))
92
97
assert(traceInit.t.nonEmpty)
93
98
assert(traceRes.t.nonEmpty)
0 commit comments