update to latest cppyy

This commit is contained in:
2020-10-08 17:43:16 +02:00
parent 4381c9be32
commit ae9e64e9fa
7 changed files with 180 additions and 11 deletions

39
tests/parsing.py Normal file
View File

@ -0,0 +1,39 @@
'''
Created on 03.01.2019
@author: eyck
'''
from cppyy_backend._cppyy_generator import CppyyGenerator
from clang.cindex import Config
from pprint import pprint
import glob
import os.path
proj_dir='../../PySysC-SC/components'
flags=['-I/home/eyck/.conan/data/SystemC/2.3.2/minres/stable/package/672f3350f4be793d25afa19a6a77085e20d01ea5/include',
'-I'+proj_dir,
'-fvisibility=hidden',
'-D__PIC__',
'-Wno-macro-redefined',
'-std=c++11']
Config.set_library_file('/usr/lib/x86_64-linux-gnu/libclang-6.0.so')
lib = Config().lib
import ctypes
from clang.cindex import Type
items = [
("clang_Type_getNumTemplateArguments", [Type], ctypes.c_size_t),
]
for item in items:
func = getattr(lib, item[0])
if len(item) >= 2:
func.argtypes = item[1]
if len(item) >= 3:
func.restype = item[2]
if len(item) == 4:
func.errcheck = item[3]
g = CppyyGenerator(flags, dump_modules=True, dump_items=True, dump_includes=False, dump_privates=True, verbose=True)
mapping = g.create_mapping([os.path.join(proj_dir, 'initiator.h')])
pprint(mapping)

View File

@ -23,8 +23,8 @@ v=cppyy.gbl.std.vector[int](10)
n = cppyy.gbl.my_module()
pp(sc_core.sc_time_stamp().to_string())
pp(n.simcontext().time_stamp().to_string())
print(type(n.port).__name__ +", "+type(n.port).__cppname__)
print(type(n.sig).__name__+", "+type(n.sig).__cppname__)
print(type(n.port).__name__ +", "+type(n.port).__cpp_name__)
print(type(n.sig).__name__+", "+type(n.sig).__cpp_name__)
#try:
# cppyy.cppdef("""blah /* a comment */""");

65
tests/test_pysysc.py Normal file
View File

@ -0,0 +1,65 @@
'''
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()