@@ -113,12 +113,25 @@ macro(RUN_UTIL RUN_FAIL RUN_NAME RUN_FILE_NAME RUN_LABELS RUN_ENABLE_CPYTHON RUN
113113 target_include_directories (${name} PRIVATE ${CMAKE_SOURCE_DIR} )
114114 set_target_properties (${name} PROPERTIES LINKER_LANGUAGE C)
115115 target_link_libraries (${name} lpython_rtlib)
116- if (run_enable_cpython)
117- target_include_directories (${name} PRIVATE ${NUMPY_INCLUDE_DIR} )
118- target_link_libraries (${name} Python::Python)
119- if (extra_files)
120- file (COPY ${CMAKE_CURRENT_SOURCE_DIR} /${extra_files} DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
121- endif ()
116+ add_test (${name} ${CMAKE_CURRENT_BINARY_DIR} /${name} )
117+ if (labels )
118+ set_tests_properties (${name} PROPERTIES LABELS "${labels} " )
119+ endif ()
120+ if (${fail} )
121+ set_tests_properties (${name} PROPERTIES WILL_FAIL TRUE )
122+ endif ()
123+ elseif (KIND STREQUAL "c_py" )
124+ add_custom_command (
125+ OUTPUT ${name} .c
126+ COMMAND ${LPYTHON} ${extra_args} --show-c ${CMAKE_CURRENT_SOURCE_DIR} /${file_name} .py > ${name} .c
127+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /${file_name} .py
128+ VERBATIM )
129+ add_executable (${name} ${name} .c ${extra_files} )
130+ target_include_directories (${name} PRIVATE ${CMAKE_SOURCE_DIR} ${NUMPY_INCLUDE_DIR} )
131+ set_target_properties (${name} PROPERTIES LINKER_LANGUAGE C)
132+ target_link_libraries (${name} lpython_rtlib Python::Python)
133+ if (extra_files)
134+ file (COPY ${CMAKE_CURRENT_SOURCE_DIR} /${extra_files} DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
122135 endif ()
123136 add_test (${name} ${CMAKE_CURRENT_BINARY_DIR} /${name} )
124137 if (labels )
@@ -127,7 +140,7 @@ macro(RUN_UTIL RUN_FAIL RUN_NAME RUN_FILE_NAME RUN_LABELS RUN_ENABLE_CPYTHON RUN
127140 if (${fail} )
128141 set_tests_properties (${name} PROPERTIES WILL_FAIL TRUE )
129142 endif ()
130- elseif (KIND STREQUAL "cpython" )
143+ elseif (( KIND STREQUAL "cpython" ) OR (KIND STREQUAL "cpython_py" ) )
131144 # CPython test
132145 if (extra_files)
133146 set (PY_MOD "${name} _mod" )
@@ -254,7 +267,7 @@ macro(RUN)
254267 if ((NOT DISABLE_FAST) AND (NOT RUN_NOFAST))
255268 set (RUN_EXTRA_ARGS ${RUN_EXTRA_ARGS} --fast)
256269 set (RUN_NAME "${RUN_NAME} _FAST" )
257- list (REMOVE_ITEM RUN_LABELS cpython) # remove cpython from --fast test
270+ list (REMOVE_ITEM RUN_LABELS cpython cpython_py ) # remove cpython, cpython_py from --fast test
258271 RUN_UTIL(RUN_FAIL RUN_NAME RUN_FILE_NAME RUN_LABELS RUN_ENABLE_CPYTHON RUN_EXTRAFILES RUN_EXTRA_ARGS)
259272 endif ()
260273endmacro (RUN)
@@ -492,8 +505,8 @@ RUN(NAME bindc_05 LABELS llvm c
492505 EXTRAFILES bindc_05b.c)
493506RUN(NAME bindc_06 LABELS llvm c
494507 EXTRAFILES bindc_06b.c)
495- RUN(NAME bindpy_01 LABELS cpython c ENABLE_CPYTHON NOFAST EXTRAFILES bindpy_01_module.py)
496- RUN(NAME bindpy_02 LABELS cpython c LINK_NUMPY EXTRAFILES bindpy_02_module.py)
508+ RUN(NAME bindpy_01 LABELS cpython_py c_py ENABLE_CPYTHON NOFAST EXTRAFILES bindpy_01_module.py)
509+ RUN(NAME bindpy_02 LABELS cpython_py c_py LINK_NUMPY EXTRAFILES bindpy_02_module.py)
497510RUN(NAME test_generics_01 LABELS cpython llvm c NOFAST)
498511RUN(NAME test_cmath LABELS cpython llvm c NOFAST)
499512RUN(NAME test_complex_01 LABELS cpython llvm c wasm wasm_x64)
0 commit comments