Skip to content

Commit 476517b

Browse files
committed
Improve CLI tests and add a failing test for python + tsx.
1 parent 0d19dfa commit 476517b

File tree

2 files changed

+78
-5
lines changed

2 files changed

+78
-5
lines changed

source/cli/metacallcli/CMakeLists.txt

Lines changed: 61 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ if(DEPENDENCIES)
204204
endif()
205205

206206
#
207-
# Define test labels
207+
# Define tests
208208
#
209209

210210
set_property(TEST ${target}
@@ -223,16 +223,21 @@ if(OPTION_BUILD_LOADERS AND OPTION_BUILD_LOADERS_NODE AND OPTION_BUILD_SCRIPTS A
223223
COMMAND ${TEST_COMMAND} "echo 'load node nod.js\ninspect\ncall hello_boy(300, 400)\nexit' | $<TARGET_FILE:${target}> | ${GREP_COMMAND} \"700.0\""
224224
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
225225
)
226+
set_property(TEST ${target}-node
227+
PROPERTY LABELS ${target}-node
228+
)
226229
test_environment_variables(${target}-node
227230
""
228231
${TESTS_ENVIRONMENT_VARIABLES}
229232
)
230-
231233
if(OPTION_BUILD_PORTS AND OPTION_BUILD_PORTS_NODE AND OPTION_BUILD_LOADERS_PY)
232234
add_test(NAME ${target}-node-port-py
233235
COMMAND ${TEST_COMMAND} "echo 'load node cli-test.js\ninspect\nexit' | $<TARGET_FILE:${target}> | ${GREP_COMMAND} \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\""
234236
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
235237
)
238+
set_property(TEST ${target}-node-port-py
239+
PROPERTY LABELS ${target}-node-port-py
240+
)
236241
test_environment_variables(${target}-node-port-py
237242
""
238243
${TESTS_ENVIRONMENT_VARIABLES}
@@ -243,6 +248,9 @@ if(OPTION_BUILD_LOADERS AND OPTION_BUILD_LOADERS_NODE AND OPTION_BUILD_SCRIPTS A
243248
COMMAND ${TEST_COMMAND} "echo 'load node cli-test-onload.js\ninspect\nexit' | $<TARGET_FILE:${target}>"
244249
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
245250
)
251+
set_property(TEST ${target}-node-port-py-rb
252+
PROPERTY LABELS ${target}-node-port-py-rb
253+
)
246254
test_environment_variables(${target}-node-port-py-rb
247255
""
248256
${TESTS_ENVIRONMENT_VARIABLES}
@@ -254,6 +262,9 @@ if(OPTION_BUILD_LOADERS AND OPTION_BUILD_LOADERS_NODE AND OPTION_BUILD_SCRIPTS A
254262
COMMAND ${TEST_COMMAND} "echo 'load node cli-test-null-undefined.js\ninspect\ncall test_null_and_undefined(null)\nexit' | $<TARGET_FILE:${target}> | ${GREP_COMMAND} \"Hello 342521512461246!\""
255263
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
256264
)
265+
set_property(TEST ${target}-node-null
266+
PROPERTY LABELS ${target}-node-null
267+
)
257268
test_environment_variables(${target}-node-null
258269
""
259270
${TESTS_ENVIRONMENT_VARIABLES}
@@ -263,6 +274,9 @@ if(OPTION_BUILD_LOADERS AND OPTION_BUILD_LOADERS_NODE AND OPTION_BUILD_SCRIPTS A
263274
COMMAND ${TEST_COMMAND} "echo 'load node cli-test-null-undefined.js\ninspect\ncall test_null_and_undefined()\nexit' | $<TARGET_FILE:${target}> | ${GREP_COMMAND} \"Hello 342521512461246!\""
264275
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
265276
)
277+
set_property(TEST ${target}-node-null-empty
278+
PROPERTY LABELS ${target}-node-null-empty
279+
)
266280
test_environment_variables(${target}-node-null-empty
267281
""
268282
${TESTS_ENVIRONMENT_VARIABLES}
@@ -272,6 +286,9 @@ if(OPTION_BUILD_LOADERS AND OPTION_BUILD_LOADERS_NODE AND OPTION_BUILD_SCRIPTS A
272286
COMMAND ${TEST_COMMAND} "echo 'load node cli-test-null-undefined.js\ninspect\ncall test_null_and_undefined(undefined)\nexit' | $<TARGET_FILE:${target}> | ${GREP_COMMAND} \"(null)\""
273287
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
274288
)
289+
set_property(TEST ${target}-node-null-undefined
290+
PROPERTY LABELS ${target}-node-null-undefined
291+
)
275292
test_environment_variables(${target}-node-null-undefined
276293
""
277294
${TESTS_ENVIRONMENT_VARIABLES}
@@ -282,6 +299,9 @@ if(OPTION_BUILD_LOADERS AND OPTION_BUILD_LOADERS_NODE AND OPTION_BUILD_SCRIPTS A
282299
COMMAND ${TEST_COMMAND} "echo 'load py cli-test.py\ninspect\ncall test()\nexit' | $<TARGET_FILE:${target}> | ${GREP_COMMAND} \"1234\""
283300
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
284301
)
302+
set_property(TEST ${target}-py-port
303+
PROPERTY LABELS ${target}-py-port
304+
)
285305
test_environment_variables(${target}-py-port
286306
""
287307
${TESTS_ENVIRONMENT_VARIABLES}
@@ -293,6 +313,9 @@ if(OPTION_BUILD_LOADERS AND OPTION_BUILD_LOADERS_NODE AND OPTION_BUILD_SCRIPTS A
293313
COMMAND ${TEST_COMMAND} "echo 'load py cli-test-rb.py\ninspect\ncall test()\nexit' | $<TARGET_FILE:${target}> | ${GREP_COMMAND} \"0123456789ABCDEFasd\""
294314
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
295315
)
316+
set_property(TEST ${target}-py-port-rb
317+
PROPERTY LABELS ${target}-py-port-rb
318+
)
296319
test_environment_variables(${target}-py-port-rb
297320
""
298321
${TESTS_ENVIRONMENT_VARIABLES}
@@ -305,6 +328,9 @@ if(OPTION_BUILD_LOADERS AND OPTION_BUILD_LOADERS_FILE AND OPTION_BUILD_SCRIPTS A
305328
COMMAND ${TEST_COMMAND} "echo 'load file template.html\ninspect\ncall template.html()\nexit' | $<TARGET_FILE:${target}> | ${GREP_COMMAND} \"${LOADER_SCRIPT_PATH}/template.html\""
306329
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
307330
)
331+
set_property(TEST ${target}-file
332+
PROPERTY LABELS ${target}-file
333+
)
308334
test_environment_variables(${target}-file
309335
""
310336
${TESTS_ENVIRONMENT_VARIABLES}
@@ -313,6 +339,9 @@ if(OPTION_BUILD_LOADERS AND OPTION_BUILD_LOADERS_FILE AND OPTION_BUILD_SCRIPTS A
313339
COMMAND ${TEST_COMMAND} "$<TARGET_FILE:${target}> this-does-not-exist | ${GREP_COMMAND} \"Script (this-does-not-exist) load error in loader (file)\""
314340
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
315341
)
342+
set_property(TEST ${target}-file-fail
343+
PROPERTY LABELS ${target}-file-fail
344+
)
316345
test_environment_variables(${target}-file-fail
317346
""
318347
${TESTS_ENVIRONMENT_VARIABLES}
@@ -324,6 +353,9 @@ if(OPTION_BUILD_LOADERS AND OPTION_BUILD_LOADERS_PY)
324353
COMMAND ${TEST_COMMAND} "$<TARGET_FILE:${target}> test.py | ${GREP_COMMAND} \"Test: 66673332\""
325354
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
326355
)
356+
set_property(TEST ${target}-py-naming
357+
PROPERTY LABELS ${target}-py-naming
358+
)
327359
test_environment_variables(${target}-py-naming
328360
""
329361
${TESTS_ENVIRONMENT_VARIABLES}
@@ -335,24 +367,48 @@ if(OPTION_BUILD_LOADERS AND OPTION_BUILD_LOADERS_TS AND OPTION_BUILD_SCRIPTS AND
335367
COMMAND ${TEST_COMMAND} "echo 'load ts typedfunc.ts\ninspect\ncall typed_sum(4, 5)\nexit' | $<TARGET_FILE:${target}> | ${GREP_COMMAND} \"9.0\""
336368
WORKING_DIRECTORY ${LOADER_SCRIPT_PATH}/typedfunc
337369
)
370+
set_property(TEST ${target}-ts
371+
PROPERTY LABELS ${target}-ts
372+
)
338373
test_environment_variables(${target}-ts
339374
""
340375
${TESTS_ENVIRONMENT_VARIABLES}
341376
)
342-
add_test(NAME ${target}-tsx
343-
COMMAND ${TEST_COMMAND} "echo 'load ts templating.tsx\ninspect\ncall hello(\"metaprogrammer\")\nexit' | $<TARGET_FILE:${target}> | ${GREP_COMMAND} '<h1 data-reactroot=\\\"\\\">Hello metaprogrammer</h1>'"
377+
add_test(NAME ${target}-tsx-templating
378+
COMMAND ${TEST_COMMAND} "echo 'load ts templating.tsx\ninspect\ncall hello(\"metaprogrammer\")\nexit' | $<TARGET_FILE:${target}> | ${GREP_COMMAND} \"Hello metaprogrammer\""
344379
WORKING_DIRECTORY ${LOADER_SCRIPT_PATH}/templating
345380
)
346-
test_environment_variables(${target}-tsx
381+
set_property(TEST ${target}-tsx-templating
382+
PROPERTY LABELS ${target}-tsx-templating
383+
)
384+
test_environment_variables(${target}-tsx-templating
347385
""
348386
${TESTS_ENVIRONMENT_VARIABLES}
349387
)
350388
add_test(NAME ${target}-tsx-loop-fail
351389
COMMAND ${TEST_COMMAND} "$<TARGET_FILE:${target}> loopfail.tsx | ${GREP_COMMAND} \"Error: Cannot find module 'yeet-oof/whatever'\""
352390
WORKING_DIRECTORY ${LOADER_SCRIPT_PATH}/loopfail
353391
)
392+
set_property(TEST ${target}-tsx-loop-fail
393+
PROPERTY LABELS ${target}-tsx-loop-fail
394+
)
354395
test_environment_variables(${target}-tsx-loop-fail
355396
""
356397
${TESTS_ENVIRONMENT_VARIABLES}
357398
)
399+
400+
if(OPTION_BUILD_LOADERS_PY)
401+
add_test(NAME ${target}-py-tsx
402+
COMMAND ${TEST_COMMAND} "echo 'load py cli-test-tsx.py\nexit' | $<TARGET_FILE:${target}> | ${GREP_COMMAND} \"Hello metaprogrammer\""
403+
WORKING_DIRECTORY ${LOADER_SCRIPT_PATH}/templating
404+
)
405+
set_property(TEST ${target}-py-tsx
406+
PROPERTY LABELS ${target}-py-tsx
407+
)
408+
test_environment_variables(${target}-py-tsx
409+
""
410+
${TESTS_ENVIRONMENT_VARIABLES}
411+
PROJECT_METACALL_PORTS_DIRECTORY=${CMAKE_SOURCE_DIR}/source/ports/py_port
412+
)
413+
endif()
358414
endif()
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#!/usr/bin/env python3
2+
3+
# This script is here in order to reproduce the bug of python-tsx-example
4+
5+
def main():
6+
import sys
7+
import os
8+
9+
# Insert Python Port folder first in the system path list
10+
sys.path.insert(0, os.environ['PROJECT_METACALL_PORTS_DIRECTORY'])
11+
12+
import metacall
13+
from templating.tsx import hello
14+
print(hello('World'))
15+
16+
# Run the main
17+
main();

0 commit comments

Comments
 (0)