public void AllExecutionBasedCodegenTests() { var testMethods = GetAllTestsFromCategory("Execution Based Codegen Tests"); var tests = new List <CodegenTestBase>(); var compilerArgs = CompilerArguments.Parse(new[] { "ExecuteTest.il" }); AssemblyRegistry.CreateAndOverrideIfNeeded(compilerArgs.References); var assembly = CodegenTestBase.CreateTempAssembly(); foreach (var method in testMethods) { var ctor = method.DeclaringType.GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance, null, new Type[] { typeof(AssemblyEmitter), typeof(string), typeof(bool) }, null); var instance = (CodegenTestBase)ctor.Invoke(new object[] { assembly, method.Name, true }); method.Invoke(instance, new object[] { }); instance.methodEmitter.ParseTree(instance.BodyCodeBlock); tests.Add(instance); } EmitEntryPoint(assembly, testMethods); Assert.IsTrue(assembly.Save()); ExecuteTests(assembly.OutputPath, testMethods, tests); }
public AssemblyRegistryTests() { assembly = CodegenTestBase.CreateTempAssembly(); }