@@ -40,11 +40,14 @@ class DifferentialTest extends AnyFunSuite {
40
40
41
41
def interp (p : IRContext ): (InterpreterState , Trace ) = {
42
42
val interpreter = LayerInterpreter (tracingInterpreter(NormalInterpreter ), EffectsRLimit (instructionLimit))
43
- val initialState = InterpFuns .initProgState(NormalInterpreter )(p, InterpreterState ())
43
+ val initialState = (( InterpFuns .initProgState(NormalInterpreter )(p, InterpreterState ()), Trace .empty), 0 )
44
44
// Logger.setLevel(LogLevel.DEBUG)
45
- val r = BASILInterpreter (interpreter).run((initialState, Trace .empty), 0 )._1
46
- // Logger.setLevel(LogLevel.WARN)
47
- r
45
+
46
+ val main = p.program.mainProcedure
47
+ val r = InterpFuns
48
+ .callProcedure(interpreter)(main, InterpFuns .mainDefaultFunctionArguments(main))
49
+ .f(initialState)
50
+ r._1._1
48
51
}
49
52
50
53
val (initialRes, traceInit) = interp(initial)
@@ -62,11 +65,13 @@ class DifferentialTest extends AnyFunSuite {
62
65
val initstdout =
63
66
initialRes.memoryState.getMem(" stdout" ).toList.sortBy(_._1.value).map(_._2.value.toChar).mkString(" " )
64
67
val comparstdout = result.memoryState.getMem(" stdout" ).toList.sortBy(_._1.value).map(_._2.value.toChar).mkString(" " )
65
- info(" STDOUT: \" " + initstdout + " \" " )
68
+ if (initstdout.nonEmpty) {
69
+ info(" STDOUT: \" " + initstdout + " \" " )
70
+ }
66
71
// Logger.info(initialRes.memoryState.getMem("stderr").toList.sortBy(_._1.value).map(_._2).mkString(""))
67
72
assert(initstdout == comparstdout)
68
- assert(initialRes.nextCmd == Stopped () )
69
- assert(result.nextCmd == Stopped () )
73
+ assert(normalTermination( initialRes.nextCmd), initialRes.nextCmd )
74
+ assert(normalTermination( result.nextCmd), initialRes.nextCmd )
70
75
assert(Set .empty == initialRes.memoryState.getMem(" mem" ).toSet.diff(result.memoryState.getMem(" mem" ).toSet))
71
76
assert(traceInit.t.nonEmpty)
72
77
assert(traceRes.t.nonEmpty)
0 commit comments