Not to show that message.
The tests passes correctly but this message is printed instead. Maybe it's not important but it will be interesting to ensure what's happening.
Not known yet. Needs investigation.
Here's the logs of the test. Note all exceptions show are correct, that's just the tests of the fail paths. The problem is "NodeJS Loader Error: Debug Failure.":
Start 40: metacall-node-port-test
40: Test command: /usr/local/metacall/build/metacall-node-port-test
40: Environment variables:
40: LOADER_LIBRARY_PATH=/usr/local/metacall/build
40: LOADER_SCRIPT_PATH=/usr/local/metacall/build/scripts
40: CONFIGURATION_PATH=/usr/local/metacall/build/configurations/global.json
40: SERIAL_LIBRARY_PATH=/usr/local/metacall/build
40: DETOUR_LIBRARY_PATH=/usr/local/metacall/build
40: PORT_LIBRARY_PATH=/usr/local/metacall/build
40: Test timeout computed to be: 1500
40: [==========] Running 1 test from 1 test case.
40: [----------] Global test environment set-up.
40: [----------] 1 test from metacall_node_port_test
40: [ RUN ] metacall_node_port_test.DefaultConstructor
40: NodeJS Integration Test Passed
40:
40:
40: metacall
40: defined
40: ✓ functions metacall and metacall_load_from_file must be defined
40: fail
40: CSLoader static initialization
40: CSLoader static initialization
40: Could not find file '/usr/local/metacall/build/scripts/asd.invalid'.
40: NodeJS Loader Error: Debug Failure.
40: NodeJS Loader Error: Debug Failure.
40: NodeJS Loader Error: Debug Failure.
40: NodeJS Loader Error: Debug Failure.
40: { Error: Cannot find module './asd.invalid'
40: at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
40: at Function.resolve (internal/modules/cjs/helpers.js:33:19)
40: at Module.mod.require (/usr/local/metacall/build/node_modules/metacall/index.js:241:28)
40: at Module.mod.require (/usr/local/metacall/source/ports/node_port/index.js:232:24)
40: at require (internal/modules/cjs/helpers.js:25:18)
40: at assert.throws (/usr/local/metacall/source/ports/node_port/test/index.js:47:26)
40: at getActual (assert.js:567:5)
40: at Function.throws (assert.js:679:24)
40: at Context.it (/usr/local/metacall/source/ports/node_port/test/index.js:47:11)
40: at callFn (/usr/local/metacall/source/ports/node_port/node_modules/mocha/lib/runnable.js:358:21) code: 'MODULE_NOT_FOUND' }
40: Could not find file '/usr/local/metacall/build/scripts/asd.invalid'.
40: Exception in ts_loader_trampoline_load_from_file { Error: ENOENT: no such file or directory, open '/usr/local/metacall/build/scripts/asd.invalid'
40: at Object.openSync (fs.js:443:3)
40: at Object.readFileSync (fs.js:343:35)
40: at TypeScriptLanguageServiceHost.addFile (/usr/local/metacall/build/bootstrap.ts:136:19)
40: at ts_loader_trampoline_load_from_file (/usr/local/metacall/build/bootstrap.ts:260:17)
40: at metacall_require (/usr/local/metacall/source/ports/node_port/index.js:144:21)
40: at Module.mod.require (/usr/local/metacall/source/ports/node_port/index.js:260:12)
40: at require (internal/modules/cjs/helpers.js:25:18)
40: at assert.throws (/usr/local/metacall/source/ports/node_port/test/index.js:47:26)
40: at getActual (assert.js:567:5)
40: at Function.throws (assert.js:679:24)
40: errno: -2,
40: syscall: 'open',
40: code: 'ENOENT',
40: path: '/usr/local/metacall/build/scripts/asd.invalid' }
40: { Error: Cannot find module './asd.invalid'
40: at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
40: at Function.resolve (internal/modules/cjs/helpers.js:33:19)
40: at Module.mod.require (/usr/local/metacall/source/ports/node_port/index.js:241:28)
40: at require (internal/modules/cjs/helpers.js:25:18)
40: at assert.throws (/usr/local/metacall/source/ports/node_port/test/index.js:47:26)
40: at getActual (assert.js:567:5)
40: at Function.throws (assert.js:679:24)
40: at Context.it (/usr/local/metacall/source/ports/node_port/test/index.js:47:11)
40: at callFn (/usr/local/metacall/source/ports/node_port/node_modules/mocha/lib/runnable.js:358:21)
40: at Test.Runnable.run (/usr/local/metacall/source/ports/node_port/node_modules/mocha/lib/runnable.js:346:5) code: 'MODULE_NOT_FOUND' }
40: Could not find file '/usr/local/metacall/build/scripts/asd.cs'.
40: Exception in ts_loader_trampoline_load_from_file { Error: ENOENT: no such file or directory, open '/usr/local/metacall/build/scripts/asd.ts'
40: at Object.openSync (fs.js:443:3)
40: at Object.readFileSync (fs.js:343:35)
40: at TypeScriptLanguageServiceHost.addFile (/usr/local/metacall/build/bootstrap.ts:136:19)
40: at ts_loader_trampoline_load_from_file (/usr/local/metacall/build/bootstrap.ts:260:17)
40: at metacall_require (/usr/local/metacall/source/ports/node_port/index.js:144:21)
40: at Module.mod.require (/usr/local/metacall/source/ports/node_port/index.js:227:13)
40: at require (internal/modules/cjs/helpers.js:25:18)
40: at assert.throws (/usr/local/metacall/source/ports/node_port/test/index.js:52:26)
40: at getActual (assert.js:567:5)
40: at Function.throws (assert.js:679:24)
40: errno: -2,
40: syscall: 'open',
40: code: 'ENOENT',
40: path: '/usr/local/metacall/build/scripts/asd.ts' }
40: Exception in ts_loader_trampoline_load_from_file { Error: ENOENT: no such file or directory, open '/usr/local/metacall/build/scripts/asd.tsx'
40: at Object.openSync (fs.js:443:3)
40: at Object.readFileSync (fs.js:343:35)
40: at TypeScriptLanguageServiceHost.addFile (/usr/local/metacall/build/bootstrap.ts:136:19)
40: at ts_loader_trampoline_load_from_file (/usr/local/metacall/build/bootstrap.ts:260:17)
40: at metacall_require (/usr/local/metacall/source/ports/node_port/index.js:144:21)
40: at Module.mod.require (/usr/local/metacall/source/ports/node_port/index.js:227:13)
40: at require (internal/modules/cjs/helpers.js:25:18)
40: at assert.throws (/usr/local/metacall/source/ports/node_port/test/index.js:53:26)
40: at getActual (assert.js:567:5)
40: at Function.throws (assert.js:679:24)
40: errno: -2,
40: syscall: 'open',
40: code: 'ENOENT',
40: path: '/usr/local/metacall/build/scripts/asd.tsx' }
40: ✓ require (507ms)
40: load
40: ✓ metacall_load_from_file (py)
40: ✓ metacall_load_from_file (rb)
40: ✓ metacall_load_from_memory (py)
40: ✓ require (mock)
40: ✓ require (py)
40: ✓ require (py module)
40: ✓ require (py submodule)
40: ✓ require (rb)
40: inspect
40: {"py":[{"name":"json.encoder","scope":{"name":"global_namespace","funcs":[{"name":"py_encode_basestring","signature":{"ret":{"type":{"name":"","id":18}},"args":[{"name":"s","type":{"name":"","id":18}}]},"async":false},{"name":"py_encode_basestring_ascii","signature":{"ret":{"type":{"name":"","id":18}},"args":[{"name":"s","type":{"name":"","id":18}}]},"async":false},{"name":"_make_iterencode","signature":{"ret":{"type":{"name":"","id":18}},"args":[{"name":"markers","type":{"name":"","id":18}},{"name":"_default","type":{"name":"","id":18}},{"name":"_encoder","type":{"name":"","id":18}},{"name":"_indent","type":{"name":"","id":18}},{"name":"_floatstr","type":{"name":"","id":18}},{"name":"_key_separator","type":{"name":"","id":18}},{"name":"_item_separator","type":{"name":"","id":18}},{"name":"_sort_keys","type":{"name":"","id":18}},{"name":"_skipkeys","type":{"name":"","id":18}},{"name":"_one_shot","type":{"name":"","id":18}},{"name":"ValueError","type":{"name":"","id":18}},{"name":"dict","type":{"name":"","id":18}},{"name":"float","type":{"name":"","id":18}},{"name":"id","type":{"name":"","id":18}},{"name":"int","type":{"name":"","id":18}},{"name":"isinstance","type":{"name":"","id":18}},{"name":"list","type":{"name":"","id":18}},{"name":"str","type":{"name":"","id":18}},{"name":"tuple","type":{"name":"","id":18}},{"name":"_intstr","type":{"name":"","id":18}}]},"async":false}],"classes":[{"name":"c_make_encoder"},{"name":"JSONEncoder"}],"objects":[]}},{"name":"helloworld.py","scope":{"name":"global_namespace","funcs":[{"name":"s_hello","signature":{"ret":{"type":{"name":"","id":18}},"args":[]},"async":false},{"name":"s_sum","signature":{"ret":{"type":{"name":"int","id":4}},"args":[{"name":"left","type":{"name":"int","id":4}},{"name":"right","type":{"name":"int","id":4}}]},"async":false},{"name":"s_strcat","signature":{"ret":{"type":{"name":"str","id":7}},"args":[{"name":"left","type":{"name":"str","id":7}},{"name":"right","type":{"name":"str","id":7}}]},"async":false},{"name":"s_dont_load_this_function","signature":{"ret":{"type":{"name":"","id":18}},"args":[{"name":"left","type":{"name":"","id":18}},{"name":"right","type":{"name":"","id":18}}]},"async":false},{"name":"s_multiply","signature":{"ret":{"type":{"name":"int","id":4}},"args":[{"name":"left","type":{"name":"int","id":4}},{"name":"right","type":{"name":"int","id":4}}]},"async":false},{"name":"s_divide","signature":{"ret":{"type":{"name":"float","id":6}},"args":[{"name":"left","type":{"name":"float","id":6}},{"name":"right","type":{"name":"float","id":6}}]},"async":false}],"classes":[],"objects":[]}},{"name":"example.py","scope":{"name":"global_namespace","funcs":[{"name":"divide","signature":{"ret":{"type":{"name":"float","id":6}},"args":[{"name":"left","type":{"name":"float","id":6}},{"name":"right","type":{"name":"float","id":6}}]},"async":false},{"name":"hello","signature":{"ret":{"type":{"name":"","id":18}},"args":[]},"async":false},{"name":"return_same_array","signature":{"ret":{"type":{"name":"","id":18}},"args":[{"name":"arr","type":{"name":"","id":18}}]},"async":false},{"name":"bytebuff","signature":{"ret":{"type":{"name":"bytes","id":8}},"args":[{"name":"input","type":{"name":"bytes","id":8}}]},"async":false},{"name":"dont_load_this_function","signature":{"ret":{"type":{"name":"","id":18}},"args":[{"name":"left","type":{"name":"","id":18}},{"name":"right","type":{"name":"","id":18}}]},"async":false},{"name":"sum","signature":{"ret":{"type":{"name":"int","id":4}},"args":[{"name":"left","type":{"name":"int","id":4}},{"name":"right","type":{"name":"int","id":4}}]},"async":false},{"name":"strcat","signature":{"ret":{"type":{"name":"str","id":7}},"args":[{"name":"left","type":{"name":"str","id":7}},{"name":"right","type":{"name":"str","id":7}}]},"async":false},{"name":"return_array","signature":{"ret":{"type":{"name":"","id":18}},"args":[]},"async":false},{"name":"multiply","signature":{"ret":{"type":{"name":"int","id":4}},"args":[{"name":"left","type":{"name":"int","id":4}},{"name":"right","type":{"name":"int","id":4}}]},"async":false}],"classes":[],"objects":[]}},{"name":"html","scope":{"name":"global_namespace","funcs":[{"name":"unescape","signature":{"ret":{"type":{"name":"","id":18}},"args":[{"name":"s","type":{"name":"","id":18}}]},"async":false},{"name":"_replace_charref","signature":{"ret":{"type":{"name":"","id":18}},"args":[{"name":"s","type":{"name":"","id":18}}]},"async":false},{"name":"escape","signature":{"ret":{"type":{"name":"","id":18}},"args":[{"name":"s","type":{"name":"","id":18}},{"name":"quote","type":{"name":"","id":18}}]},"async":false}],"classes":[],"objects":[]}},{"name":"0x7f9a680011e0-0x7f9a85a22880-29-930707656","scope":{"name":"global_namespace","funcs":[{"name":"py_memory","signature":{"ret":{"type":{"name":"","id":18}},"args":[]},"async":false}],"classes":[],"objects":[]}}],"rb":[{"name":"ducktype.rb","scope":{"name":"global_namespace","funcs":[{"name":"get_second","signature":{"ret":{"type":{"name":"","id":18}},"args":[{"name":"first","type":{"name":"","id":18}},{"name":"second","type":{"name":"","id":18}}]},"async":false},{"name":"map_style","signature":{"ret":{"type":{"name":"","id":18}},"args":[{"name":"a","type":{"name":"Fixnum","id":3}},{"name":"b","type":{"name":"Fixnum","id":3}}]},"async":false},{"name":"mixed","signature":{"ret":{"type":{"name":"","id":18}},"args":[{"name":"a","type":{"name":"","id":18}},{"name":"b","type":{"name":"","id":18}},{"name":"c","type":{"name":"Fixnum","id":3}},{"name":"d","type":{"name":"Fixnum","id":3}}]},"async":false},{"name":"say_null","signature":{"ret":{"type":{"name":"","id":18}},"args":[]},"async":false},{"name":"say_multiply","signature":{"ret":{"type":{"name":"","id":18}},"args":[{"name":"left","type":{"name":"","id":18}},{"name":"right","type":{"name":"","id":18}}]},"async":false},{"name":"say_hello","signature":{"ret":{"type":{"name":"","id":18}},"args":[{"name":"value","type":{"name":"","id":18}}]},"async":false}],"classes":[],"objects":[]}},{"name":"cache.rb","scope":{"name":"global_namespace","funcs":[{"name":"cache_has_key","signature":{"ret":{"type":{"name":"","id":18}},"args":[{"name":"key","type":{"name":"String","id":7}}]},"async":false},{"name":"cache_set","signature":{"ret":{"type":{"name":"","id":18}},"args":[{"name":"key","type":{"name":"String","id":7}},{"name":"value","type":{"name":"String","id":7}}]},"async":false},{"name":"cache_get","signature":{"ret":{"type":{"name":"","id":18}},"args":[{"name":"key","type":{"name":"String","id":7}}]},"async":false},{"name":"cache_initialize","signature":{"ret":{"type":{"name":"","id":18}},"args":[]},"async":false},{"name":"cache_nothing","signature":{"ret":{"type":{"name":"","id":18}},"args":[{"name":"key","type":{"name":"String","id":7}}]},"async":false}],"classes":[],"objects":[]}}],"cs":[],"ts":[],"node":[{"name":"bootstrap.ts","scope":{"name":"global_namespace","funcs":[{"name":"discover","signature":{"ret":{"type":{"name":"","id":18}},"args":[{"name":"handle","type":{"name":"","id":18}}]},"async":false},{"name":"await_function","signature":{"ret":{"type":{"name":"","id":18}},"args":[{"name":"func","type":{"name":"","id":18}},{"name":"args","type":{"name":"","id":18}},{"name":"trampoline_ptr","type":{"name":"","id":18}}]},"async":false},{"name":"load_from_file","signature":{"ret":{"type":{"name":"","id":18}},"args":[{"name":"paths","type":{"name":"","id":18}}]},"async":false},{"name":"initialize","signature":{"ret":{"type":{"name":"","id":18}},"args":[]},"async":false},{"name":"await_future","signature":{"ret":{"type":{"name":"","id":18}},"args":[{"name":"future","type":{"name":"","id":18}},{"name":"trampoline_ptr","type":{"name":"","id":18}}]},"async":false},{"name":"test","signature":{"ret":{"type":{"name":"","id":18}},"args":[{"name":"obj","type":{"name":"","id":18}}]},"async":false},{"name":"load_from_package","signature":{"ret":{"type":{"name":"","id":18}},"args":[]},"async":false},{"name":"clear","signature":{"ret":{"type":{"name":"","id":18}},"args":[{"name":"handle","type":{"name":"","id":18}}]},"async":false},{"name":"load_from_memory","signature":{"ret":{"type":{"name":"","id":18}},"args":[{"name":"name","type":{"name":"","id":18}},{"name":"buffer","type":{"name":"","id":18}},{"name":"opts","type":{"name":"","id":18}}]},"async":false},{"name":"destroy","signature":{"ret":{"type":{"name":"","id":18}},"args":[]},"async":false},{"name":"execution_path","signature":{"ret":{"type":{"name":"","id":18}},"args":[]},"async":false}],"classes":[],"objects":[]}},{"name":"test.js","scope":{"name":"global_namespace","funcs":[{"name":"main","signature":{"ret":{"type":{"name":"","id":18}},"args":[]},"async":true}],"classes":[],"objects":[]}}],"mock":[{"name":"asd.mock","scope":{"name":"global_namespace","funcs":[{"name":"three_str","signature":{"ret":{"type":{"name":"String","id":7}},"args":[{"name":"a_str","type":{"name":"String","id":7}},{"name":"b_str","type":{"name":"String","id":7}},{"name":"c_str","type":{"name":"String","id":7}}]},"async":false},{"name":"my_empty_func_str","signature":{"ret":{"type":{"name":"String","id":7}},"args":[]},"async":false},{"name":"my_empty_func_int","signature":{"ret":{"type":{"name":"Integer","id":3}},"args":[]},"async":false},{"name":"new_args","signature":{"ret":{"type":{"name":"String","id":7}},"args":[{"name":"a_str","type":{"name":"String","id":7}}]},"async":false},{"name":"two_str","signature":{"ret":{"type":{"name":"String","id":7}},"args":[{"name":"a_str","type":{"name":"String","id":7}},{"name":"b_str","type":{"name":"String","id":7}}]},"async":false},{"name":"two_doubles","signature":{"ret":{"type":{"name":"Double","id":6}},"args":[{"name":"first_parameter","type":{"name":"Double","id":6}},{"name":"second_parameter","type":{"name":"Double","id":6}}]},"async":false},{"name":"my_empty_func","signature":{"ret":{"type":{"name":"Integer","id":3}},"args":[]},"async":false},{"name":"mixed_args","signature":{"ret":{"type":{"name":"Char","id":1}},"args":[{"name":"a_char","type":{"name":"Char","id":1}},{"name":"b_int","type":{"name":"Integer","id":3}},{"name":"c_long","type":{"name":"Long","id":4}},{"name":"d_double","type":{"name":"Double","id":6}},{"name":"e_ptr","type":{"name":"Ptr","id":11}}]},"async":false}],"classes":[],"objects":[]}}]}
40: ✓ metacall_inspect
40: call
40: ✓ metacall (mock)
40: ✓ metacall (py)
40: ✓ metacall (rb)
40: callback
40: 2 + 3 + 5 = 10
40: ------------------ js chain 5
40: ------------------ js chain pre x() call function(x) ...
40: ------------------ js factorial 5
40: ------------------ js factorial pre x() call function(x) ...
40: ------------------ js factorial 4
40: ------------------ js factorial pre x() call function(x) ...
40: ------------------ js factorial 3
40: ------------------ js factorial pre x() call function(x) ...
40: ------------------ js factorial 2
40: ------------------ js factorial pre x() call function(x) ...
40: ------------------ js factorial 1
40: ------------------ js factorial pre x() call function(x) ...
40: ------------------ js factorial 0
40: ------------------ js factorial case base
40: ------------------ js factorial post x() call function(x) ...
40: ------------------ js factorial post x() call function(x) ...
40: ------------------ js factorial post x() call function(x) ...
40: ------------------ js factorial post x() call function(x) ...
40: ------------------ js factorial post x() call function(x) ...
40: ------------------ js chain post x() call function(x) ...
40: ------------------ js chain 5
40: ------------------ js chain pre x() call function(x) ...
40: ------------------ js factorial 5
40: ------------------ js factorial pre x() call function(x) ...
40: ------------------ js factorial 4
40: ------------------ js factorial pre x() call function(x) ...
40: ------------------ js factorial 3
40: ------------------ js factorial pre x() call function(x) ...
40: ------------------ js factorial 2
40: ------------------ js factorial pre x() call function(x) ...
40: ------------------ js factorial 1
40: ------------------ js factorial pre x() call function(x) ...
40: ------------------ js factorial 0
40: ------------------ js factorial case base
40: ------------------ js factorial post x() call function(x) ...
40: ------------------ js factorial post x() call function(x) ...
40: ------------------ js factorial post x() call function(x) ...
40: ------------------ js factorial post x() call function(x) ...
40: ------------------ js factorial post x() call function(x) ...
40: ------------------ js chain post x() call function(x) ...
40: 2 * 2 = 4
40: 4.0 / 2.0 = 2.0
40: 2 + 2 = 4
40: 2 + 2 = 22
40: 2 * 2 = 4
40: Executing: <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a800e9720> ( 2.0 , 3.0 )
40: Returning lambda with captured arg: 10.0
40: Executing lambda with argument: 3.0
40: ------------------ py chain 5.0
40: ------------------ py chain pre x call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a8003dba0>
40: ------------------ py factorial 5.0
40: ------------------ py factorial pre x() call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a800e9750>
40: ------------------ py factorial 4.0
40: ------------------ py factorial pre x() call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a8003dcc0>
40: ------------------ py factorial 3.0
40: ------------------ py factorial pre x() call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a8003dd80>
40: ------------------ py factorial 2.0
40: ------------------ py factorial pre x() call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a8003de40>
40: ------------------ py factorial 1.0
40: ------------------ py factorial pre x() call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a8003df00>
40: ------------------ py factorial 0.0
40: ------------------ py factorial case base
40: ------------------ py factorial post x() call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a8003df00>
40: ------------------ py factorial post x() call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a8003de40>
40: ------------------ py factorial post x() call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a8003dd80>
40: ------------------ py factorial post x() call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a8003dcc0>
40: ------------------ py factorial post x() call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a800e9750>
40: ------------------ py chain post x call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a8003dba0>
40: ------------------ py chain 5.0
40: ------------------ py chain pre x call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a8003dba0>
40: ------------------ py factorial 5.0
40: ------------------ py factorial pre x() call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a800450c0>
40: ------------------ py factorial 4.0
40: ------------------ py factorial pre x() call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a80045180>
40: ------------------ py factorial 3.0
40: ------------------ py factorial pre x() call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a80045240>
40: ------------------ py factorial 2.0
40: ------------------ py factorial pre x() call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a80045300>
40: ------------------ py factorial 1.0
40: ------------------ py factorial pre x() call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a800453c0>
40: ------------------ py factorial 0.0
40: ------------------ py factorial case base
40: ------------------ py factorial post x() call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a800453c0>
40: ------------------ py factorial post x() call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a80045300>
40: ------------------ py factorial post x() call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a80045240>
40: ------------------ py factorial post x() call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a80045180>
40: ------------------ py factorial post x() call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a800450c0>
40: ------------------ py chain post x call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a8003dba0>
40: ------------------ py chain 5.0
40: ------------------ py chain pre x call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a80045540>
40: ------------------ js factorial 5
40: ------------------ js factorial pre x() call function () ...
40: ------------------ js factorial 4
40: ------------------ js factorial pre x() call function () ...
40: ------------------ js factorial 3
40: ------------------ js factorial pre x() call function () ...
40: ------------------ js factorial 2
40: ------------------ js factorial pre x() call function () ...
40: ------------------ js factorial 1
40: ------------------ js factorial pre x() call function () ...
40: ------------------ js factorial 0
40: ------------------ js factorial case base
40: ------------------ js factorial post x() call function () ...
40: ------------------ js factorial post x() call function () ...
40: ------------------ js factorial post x() call function () ...
40: ------------------ js factorial post x() call function () ...
40: ------------------ js factorial post x() call function () ...
40: ------------------ py chain post x call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a80045540>
40: ------------------ py chain 5.0
40: ------------------ py chain pre x call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a80045540>
40: ------------------ js factorial 5
40: ------------------ js factorial pre x() call function () ...
40: ------------------ js factorial 4
40: ------------------ js factorial pre x() call function () ...
40: ------------------ js factorial 3
40: ------------------ js factorial pre x() call function () ...
40: ------------------ js factorial 2
40: ------------------ js factorial pre x() call function () ...
40: ------------------ js factorial 1
40: ------------------ js factorial pre x() call function () ...
40: ------------------ js factorial 0
40: ------------------ js factorial case base
40: ------------------ js factorial post x() call function () ...
40: ------------------ js factorial post x() call function () ...
40: ------------------ js factorial post x() call function () ...
40: ------------------ js factorial post x() call function () ...
40: ------------------ js factorial post x() call function () ...
40: ------------------ py chain post x call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a80045540>
40: ------------------ py chain 5.0
40: ------------------ py chain pre x call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a80045630>
40: ------------------ py chain post x call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a80045630>
40: ------------------ py chain 5.0
40: ------------------ py chain pre x call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a80045630>
40: ------------------ py chain post x call <built-in method __py_loader_impl_function_type_invoke__ of PyCapsule object at 0x7f9a80045630>
40: ✓ callback (py) (133ms)
40:
40:
40: 15 passing (684ms)
40:
40: ruby: set value
40: ruby: get value
40: Second value is
40: 12.0
40: [ OK ] metacall_node_port_test.DefaultConstructor (1343 ms)
40: [----------] 1 test from metacall_node_port_test (1343 ms total)
40:
40: [----------] Global test environment tear-down
40: [==========] 1 test from 1 test case ran. (1344 ms total)
40: [ PASSED ] 1 test.
40/111 Test #40: metacall-node-port-test .......................... Passed 1.35 sec
None.
None.