@@ -113,12 +113,25 @@ macro(RUN_UTIL RUN_FAIL RUN_NAME RUN_FILE_NAME RUN_LABELS RUN_ENABLE_CPYTHON RUN
113
113
target_include_directories (${name} PRIVATE ${CMAKE_SOURCE_DIR} )
114
114
set_target_properties (${name} PROPERTIES LINKER_LANGUAGE C)
115
115
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} )
122
135
endif ()
123
136
add_test (${name} ${CMAKE_CURRENT_BINARY_DIR} /${name} )
124
137
if (labels )
@@ -127,7 +140,7 @@ macro(RUN_UTIL RUN_FAIL RUN_NAME RUN_FILE_NAME RUN_LABELS RUN_ENABLE_CPYTHON RUN
127
140
if (${fail} )
128
141
set_tests_properties (${name} PROPERTIES WILL_FAIL TRUE )
129
142
endif ()
130
- elseif (KIND STREQUAL "cpython" )
143
+ elseif (( KIND STREQUAL "cpython" ) OR (KIND STREQUAL "cpython_py" ) )
131
144
# CPython test
132
145
if (extra_files)
133
146
set (PY_MOD "${name} _mod" )
@@ -254,7 +267,7 @@ macro(RUN)
254
267
if ((NOT DISABLE_FAST) AND (NOT RUN_NOFAST))
255
268
set (RUN_EXTRA_ARGS ${RUN_EXTRA_ARGS} --fast)
256
269
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
258
271
RUN_UTIL(RUN_FAIL RUN_NAME RUN_FILE_NAME RUN_LABELS RUN_ENABLE_CPYTHON RUN_EXTRAFILES RUN_EXTRA_ARGS)
259
272
endif ()
260
273
endmacro (RUN)
@@ -492,8 +505,8 @@ RUN(NAME bindc_05 LABELS llvm c
492
505
EXTRAFILES bindc_05b.c)
493
506
RUN(NAME bindc_06 LABELS llvm c
494
507
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)
497
510
RUN(NAME test_generics_01 LABELS cpython llvm c NOFAST)
498
511
RUN(NAME test_cmath LABELS cpython llvm c NOFAST)
499
512
RUN(NAME test_complex_01 LABELS cpython llvm c wasm wasm_x64)
0 commit comments