require_relative '../helper' module Mom class InstructionMock < Instruction def initialize super("mocking") end end # Most MomInstructionTests test the risc instructions of the mom instruction # quite carefully, ie every instruction, every register. # # This is done with the assert methods in risc_assert # # Most tests go through instructions from top to bottom. # For working code, one can get a list of those instructions by using the all_str as message # Most tests will test for length and give the all_str as message to see where it went wrong # like: assert_equal 8 , all.length , all_str class MomInstructionTest < MiniTest::Test include Output def setup Parfait.boot!(Parfait.default_test_options) @instruction = instruction @compiler = Risc::MethodCompiler.new(Risc::FakeCallable.new , Label.new("source","start")) @instruction.to_risc(@compiler) @risc = @compiler.risc_instructions end def risc(at) return @risc if at == 0 @risc.next( at ) end def all ret = [] @risc.each {|i| ret << i} ret end def all_str class_list(all.collect{|i|i.class}) end end end