Недавно я обнаружил модуль cffi
Python, и я хотел бы использовать его для написания модульных тестов для некоторого кода C, который я написал на Python.Одна (возможно, простая) вещь, которую я не могу обернуть, это то, как скомпилировать несколько исходных файлов C в один модуль Python, который затем может быть импортирован кодом Python.
Скажем, например, у меня есть четыре файла C, a.c
, a.h
, b.c
и b.h
, так что a.c
включает в себя a.h
и b.h
и вызывает функции, реализованные в b.c
.И b.c
включает только b.h
.
Если бы я хотел написать модульные тесты для функций, реализованных в b.c
, я мог бы просто сделать это:
import cffi
with open('b.h', 'r') as f:
b_h = f.read()
with open('b.c', 'r') as f:
b_c = f.read()
ffi = cffi.FFI()
ffi.cdef(b_h)
ffi.set_source('_b', b_c)
# import _b ...
Но что, если я захочунаписать модульные тесты для функций, определенных в a.c
?