diff --git a/Users/Matthijs/DebugCompiler/MyEngine.cs b/Users/Matthijs/DebugCompiler/MyEngine.cs index d42f1f4fa..6abf9cde3 100644 --- a/Users/Matthijs/DebugCompiler/MyEngine.cs +++ b/Users/Matthijs/DebugCompiler/MyEngine.cs @@ -12,31 +12,45 @@ namespace DebugCompiler [TestCaseSource(typeof(MySource), nameof(MySource.ProvideData))] public void Test(Type kernelToRun) { - Environment.CurrentDirectory = Path.GetDirectoryName(typeof(RunKernels).Assembly.Location); + try + { + Environment.CurrentDirectory = Path.GetDirectoryName(typeof(RunKernels).Assembly.Location); - var xEngine = new Engine(); - // Sets the time before an error is registered. For example if set to 60 then if a kernel runs for more than 60 seconds then - // that kernel will be marked as a failure and terminated - xEngine.AllowedSecondsInKernel = 300; + var xEngine = new Engine(); - // If you want to test only specific platforms, add them to the list, like next line. By default, all platforms are run. - xEngine.RunTargets.Add(RunTargetEnum.Bochs); - //xEngine.StartBochsDebugGui = false; - //xEngine.RunWithGDB = true; - // If you're working on the compiler (or other lower parts), you can choose to run the compiler in process - // one thing to keep in mind though, is that this only works with 1 kernel at a time! - //xEngine.RunIL2CPUInProcess = true; - xEngine.TraceAssembliesLevel = TraceAssemblies.User; + // Sets the time before an error is registered. For example if set to 60 then if a kernel runs for more than 60 seconds then + // that kernel will be marked as a failure and terminated + xEngine.AllowedSecondsInKernel = 300; - xEngine.EnableStackCorruptionChecks = true; - xEngine.StackCorruptionChecksLevel = StackCorruptionDetectionLevel.AllInstructions; + // If you want to test only specific platforms, add them to the list, like next line. By default, all platforms are run. + xEngine.RunTargets.Add(RunTargetEnum.Bochs); - // Select kernels to be tested by adding them to the engine - xEngine.AddKernel(kernelToRun.Assembly.Location); + //xEngine.StartBochsDebugGui = false; + //xEngine.RunWithGDB = true; + // If you're working on the compiler (or other lower parts), you can choose to run the compiler in process + // one thing to keep in mind though, is that this only works with 1 kernel at a time! + //xEngine.RunIL2CPUInProcess = true; + xEngine.TraceAssembliesLevel = TraceAssemblies.User; - xEngine.OutputHandler = new TestOutputHandler(); + xEngine.EnableStackCorruptionChecks = true; + xEngine.StackCorruptionChecksLevel = StackCorruptionDetectionLevel.AllInstructions; - Assert.IsTrue(xEngine.Execute()); + // Select kernels to be tested by adding them to the engine + xEngine.AddKernel(kernelToRun.Assembly.Location); + + xEngine.OutputHandler = new TestOutputHandler(); + + Assert.IsTrue(xEngine.Execute()); + } + catch (AssertionException) + { + throw; + } + catch(Exception E) + { + Console.WriteLine("Exception occurred: " + E.ToString()); + Assert.Fail(); + } } private class TestOutputHandler : OutputHandlerFullTextBase