public void TestAllInstructionsExceptSpecificOnesAreProcessed() { var pipeline = new DefaultPipeline().Without<LambdaInliningVisitor>(); var disassembler = ExpressiveEngine.GetDisassembler(); var visitor = new InstructionCollectingVisitor(); foreach (var method in GetAllNonGenericMethods()) { var elements = disassembler.Disassemble(method) .Select(i => (IElement)new InstructionElement(i)).ToList(); try { ApplyPipeline(pipeline, elements, method); } catch { continue; } visitor.VisitList(elements); } Assert.AreElementsEqual( new OpCode[0], visitor.OpCodes.Except(UnsupportedOpCodes).OrderBy(code => code.Name) ); }
public void TestAllInstructionsExceptSpecificOnesAreProcessed() { var pipeline = new DefaultPipeline().Without <LambdaInliningVisitor>(); var disassembler = ExpressiveEngine.GetDisassembler(); var visitor = new InstructionCollectingVisitor(); foreach (var method in GetAllNonGenericMethods()) { var elements = disassembler.Disassemble(method) .Select(i => (IElement) new InstructionElement(i)).ToList(); try { ApplyPipeline(pipeline, elements, method); } catch { continue; } visitor.VisitList(elements); } Assert.AreElementsEqual( new OpCode[0], visitor.OpCodes.Except(UnsupportedOpCodes).OrderBy(code => code.Name) ); }