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)
            );
        }
Example #2
0
        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)
                );
        }