move over to from openpower imports
[soc.git] / src / soc / fu / compunits / test / test_trap_compunit.py
1 import unittest
2 from openpower.decoder.power_enums import (XER_bits, Function)
3
4 from soc.fu.trap.test.test_pipe_caller import get_cu_inputs
5 from soc.fu.trap.test.test_pipe_caller import TrapTestCase # creates the tests
6
7 from soc.fu.test.common import ALUHelpers
8 from soc.fu.compunits.compunits import TrapFunctionUnit
9 from soc.fu.compunits.test.test_compunit import TestRunner
10 from soc.config.endian import bigendian
11
12
13 class TrapTestRunner(TestRunner):
14 def __init__(self, test_data):
15 super().__init__(test_data, TrapFunctionUnit, self,
16 Function.TRAP, bigendian)
17
18 def get_cu_inputs(self, dec2, sim):
19 """naming (res) must conform to TrapFunctionUnit input regspec
20 """
21 res = yield from get_cu_inputs(dec2, sim)
22 return res
23
24 def check_cu_outputs(self, res, dec2, sim, alu, code):
25 """naming (res) must conform to TrapFunctionUnit output regspec
26 """
27
28 sim_o = {}
29
30 yield from ALUHelpers.get_sim_int_o(sim_o, sim, dec2)
31 yield from ALUHelpers.get_wr_fast_spr1(sim_o, sim, dec2)
32 yield from ALUHelpers.get_wr_fast_spr2(sim_o, sim, dec2)
33 ALUHelpers.get_sim_nia(sim_o, sim, dec2)
34 ALUHelpers.get_sim_msr(sim_o, sim, dec2)
35
36 print("sim output", sim_o)
37
38 ALUHelpers.check_int_o(self, res, sim_o, code)
39 ALUHelpers.check_fast_spr1(self, res, sim_o, code)
40 ALUHelpers.check_fast_spr2(self, res, sim_o, code)
41 ALUHelpers.check_nia(self, res, sim_o, code)
42 ALUHelpers.check_msr(self, res, sim_o, code)
43
44
45 if __name__ == "__main__":
46 unittest.main(exit=False)
47 suite = unittest.TestSuite()
48 suite.addTest(TrapTestRunner(TrapTestCase().test_data))
49
50 runner = unittest.TextTestRunner()
51 runner.run(suite)