65 lines
2.0 KiB
Python
65 lines
2.0 KiB
Python
|
'''
|
||
|
Created on 01.01.2019
|
||
|
|
||
|
@author: eyck
|
||
|
'''
|
||
|
import unittest
|
||
|
import json
|
||
|
import cppyy
|
||
|
import os.path
|
||
|
import pysysc as scpy
|
||
|
from cppyy import gbl as cpp
|
||
|
|
||
|
|
||
|
class Test(unittest.TestCase):
|
||
|
initialized=False
|
||
|
|
||
|
def setUp(self):
|
||
|
proj_home='../PySysC-SC'
|
||
|
conan_res = scpy.read_config_from_conan(os.path.join(proj_home, 'conanfile.txt'))
|
||
|
scpy.load_systemc()
|
||
|
scpy.add_include_path(os.path.join(proj_home, 'components'))
|
||
|
scpy.add_library('components.h', os.path.join(proj_home, 'build/Debug/lib/libcomponents.so'))
|
||
|
|
||
|
self.initiator = cpp.Initiator(cpp.sc_core.sc_module_name("initiator"))
|
||
|
self.memories = [cpp.Memory(cpp.sc_core.sc_module_name(name)) for name in ["mem0", "mem1", "mem2", "mem3"]]
|
||
|
self.router = cpp.Router[4](cpp.sc_core.sc_module_name("router"))
|
||
|
self.initiator.socket.bind(self.router.target_socket)
|
||
|
for idx,m in enumerate(self.memories):
|
||
|
self.router.initiator_socket.at(idx).bind(m.socket)
|
||
|
print("Initialized")
|
||
|
|
||
|
def tearDown(self):
|
||
|
#cpp.sc_core.sc_stop()
|
||
|
pass
|
||
|
|
||
|
|
||
|
def testSCTimeRepr(self):
|
||
|
self.assertEqual(str(cpp.sc_core.sc_time_stamp()), '0 s')
|
||
|
|
||
|
def testMembers(self):
|
||
|
members = scpy.get_members(initiator)
|
||
|
print("members")
|
||
|
methods = scpy.get_methods(initiator)
|
||
|
print("methods")
|
||
|
|
||
|
ports = scpy.get_ports(initiator)
|
||
|
print("ports")
|
||
|
intors = scpy.get_inititator_sockets(initiator)
|
||
|
print("intors")
|
||
|
tgts = scpy.get_target_sockets(initiator)
|
||
|
print("tgts")
|
||
|
childs = scpy.get_submodules(initiator)
|
||
|
print("childs")
|
||
|
self.assertTrue(len(intors)==1, "Wrong numbers of initiator sockets")
|
||
|
|
||
|
def testConnection(self):
|
||
|
self.assertFalse(isinstance(self.intors[0][0], cpp.sc_core.sc_object), " intor[0] connects to sc_object", )
|
||
|
|
||
|
# def testSim(self):
|
||
|
# cpp.sc_core.sc_in_action=True
|
||
|
# cpp.sc_core.sc_start()
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
#import sys;sys.argv = ['', 'Test.testName']
|
||
|
unittest.main()
|