示例#1
0
 def test_execute_trap(self):
     machine = Machine()
     machine.loadProgram('Tomasulo/intUnit1.hex')
     instruction = Instruction(0x44800003)
     machine.issue(instruction)
     machine.execute()
     machine.execute()
示例#2
0
 def test_brUnit1(self):
     sys.stdout = output = io.StringIO()
     machine = Machine()
     machine.loadProgram('Tomasulo/brUnit1.hex')
     machine.run()
     with open('Tomasulo/brUnit1.out', 'r') as answerFile:
         answer = answerFile.read()
     self.assertEquals(output.getvalue(), answer)
示例#3
0
 def test_allInts(self):
     for i in range(1, 9):
         sys.stdout = output = io.StringIO()
         machine = Machine()
         machine.loadProgram('Tomasulo/intUnit{0}.hex'.format(i))
         machine.run()
         with open('Tomasulo/intUnit{0}.out'.format(i), 'r') as answerFile:
             answer = answerFile.read()
         self.assertEquals(output.getvalue(), answer)
示例#4
0
 def test_all(self):
     sys.stdout = output = io.StringIO()
     for inputFile in os.listdir('Tomasulo'):
         if inputFile.endswith('.dlx'): continue
         if inputFile.endswith('.out'): continue
         machine = Machine()
         machine.loadProgram('Tomasulo/' + inputFile)
         machine.run()
         with open('Tomasulo/' + inputFile.strip('.hex') + '.out', 'r') as answerFile:
             answer = answerFile.read()
         self.assertEquals(output.getvalue(), answer)
示例#5
0
 def test_nextInstructionAndIssue(self):
     machine = Machine()
     machine.loadProgram('Tomasulo/memUnit1.hex')
     count = 0
     while True:
         instruc = machine.nextInstruction()
         machine.issue(instruc)
         count += 1
         machine.PC += 4
         if instruc.isHalt():
             break
     self.assertEquals(count, 26)
     rstations = machine.dumpRStations()
示例#6
0
 def test_nextInstruction(self):
     machine = Machine()
     machine.loadProgram('Tomasulo/intUnit1.hex')
     instruc = machine.nextInstruction()