Skip to content

Commit af94689

Browse files
committed
Solve few test bugs and make rust tests optional in node and python.
1 parent 1d829ba commit af94689

File tree

6 files changed

+49
-19
lines changed

6 files changed

+49
-19
lines changed

source/ports/node_port/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,9 +123,15 @@ if(OPTION_BUILD_LOADERS_C)
123123
set(TESTS_ENVIRONMENT_VARIABLES_C "OPTION_BUILD_LOADERS_C=1")
124124
endif()
125125

126+
# Enable rust test if it is built
127+
if(OPTION_BUILD_LOADERS_C)
128+
set(TESTS_ENVIRONMENT_VARIABLES_RS "OPTION_BUILD_LOADERS_RS=1")
129+
endif()
130+
126131
test_environment_variables(${target}
127132
""
128133
${TESTS_ENVIRONMENT_VARIABLES}
129134
${TESTS_ENVIRONMENT_VARIABLES_COB}
130135
${TESTS_ENVIRONMENT_VARIABLES_C}
136+
${TESTS_ENVIRONMENT_VARIABLES_RS}
131137
)

source/ports/node_port/test/index.js

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -83,13 +83,15 @@ describe('metacall', () => {
8383
assert.notStrictEqual(script, undefined);
8484
assert.strictEqual(script.name, 'ducktype.rb');
8585
});
86-
it('metacall_load_from_file (rs)', () => {
87-
assert.strictEqual(metacall_load_from_file('rs', ['basic.rs']), undefined);
86+
if (process.env['OPTION_BUILD_LOADERS_RS']) {
87+
it('metacall_load_from_file (rs)', () => {
88+
assert.strictEqual(metacall_load_from_file('rs', ['basic.rs']), undefined);
8889

89-
const script = metacall_handle('rs', 'basic.rs');
90-
assert.notStrictEqual(script, undefined);
91-
assert.strictEqual(script.name, 'basic.rs');
92-
});
90+
const script = metacall_handle('rs', 'basic.rs');
91+
assert.notStrictEqual(script, undefined);
92+
assert.strictEqual(script.name, 'basic.rs');
93+
});
94+
}
9395
it('metacall_load_from_memory (py)', () => {
9496
assert.strictEqual(metacall_load_from_memory('py', 'def py_memory():\n\treturn 4;\n'), undefined);
9597
assert.strictEqual(metacall('py_memory'), 4.0);
@@ -201,13 +203,15 @@ describe('metacall', () => {
201203
assert.strictEqual(cache.cache_set('asd', 'efg'), undefined);
202204
assert.strictEqual(cache.cache_get('asd'), 'efg');
203205
});
204-
it('require (rs)', () => {
205-
const { new_string, add_vec2, add_float, return_vec } = require('./basic.rs');
206-
assert.strictEqual(new_string(123), 'get number 123');
207-
assert.strictEqual(add_vec2([1, 2, 3, 4]), 10);
208-
assert.strictEqual(add_float(12, 23), 35);
209-
assert.strictEqual(return_vec().reduce((partialSum, a) => partialSum + a, 0), 15);
210-
});
206+
if (process.env['OPTION_BUILD_LOADERS_RS']) {
207+
it('require (rs)', () => {
208+
const { new_string, add_vec2, add_float, return_vec } = require('./basic.rs');
209+
assert.strictEqual(new_string(123), 'get number 123');
210+
assert.strictEqual(add_vec2([1, 2, 3, 4]), 10);
211+
assert.strictEqual(add_float(12, 23), 35);
212+
assert.strictEqual(return_vec().reduce((partialSum, a) => partialSum + a, 0), 15);
213+
});
214+
}
211215
});
212216

213217
describe('inspect', () => {
@@ -225,9 +229,11 @@ describe('metacall', () => {
225229
it('metacall (rb)', () => {
226230
assert.strictEqual(metacall('get_second', 5, 12), 12);
227231
});
228-
it('metacall (rs)', () => {
229-
assert.strictEqual(metacall('add', 5, 12), 17);
230-
});
232+
if (process.env['OPTION_BUILD_LOADERS_RS']) {
233+
it('metacall (rs)', () => {
234+
assert.strictEqual(metacall('add', 5, 12), 17);
235+
});
236+
}
231237
});
232238

233239
describe('callback', () => {

source/ports/py_port/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,13 @@ set_property(TEST ${target}
6060

6161
include(TestEnvironmentVariables)
6262

63+
# Enable rust test if it is built
64+
if(OPTION_BUILD_LOADERS_C)
65+
set(TESTS_ENVIRONMENT_VARIABLES_RS "OPTION_BUILD_LOADERS_RS=1")
66+
endif()
67+
6368
test_environment_variables(${target}
6469
""
6570
${TESTS_ENVIRONMENT_VARIABLES}
71+
${TESTS_ENVIRONMENT_VARIABLES_RS}
6672
)

source/ports/py_port/test/test_simple.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,8 @@ def test_nodejs(self):
9696

9797
# MetaCall (Rust)
9898
def test_rust(self):
99-
print("running rust test")
99+
if os.environ.get('OPTION_BUILD_LOADERS_RS') == None: return
100+
100101
from basic.rs import add, add_float, string_len, new_string
101102

102103
self.assertEqual(add(34, 22), 56)
@@ -118,8 +119,7 @@ def test_rust(self):
118119
fn new_string2(idx: i32) -> String {
119120
format!("get number {idx}")
120121
}
121-
122-
""")
122+
""")
123123
self.assertEqual(metacall('new_string2', 5), 'get number 5')
124124

125125
# FIXME: println inside rust fails to log anything

source/tests/metacall_plugin_extension_local_test/source/metacall_plugin_extension_local_test.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ TEST_F(metacall_plugin_extension_local_test, DefaultConstructor)
5353
EXPECT_EQ((enum metacall_value_id)METACALL_LONG, (enum metacall_value_id)metacall_value_id(ret));
5454

5555
EXPECT_EQ((long)6, (long)metacall_value_to_long(ret));
56+
57+
metacall_value_destroy(ret);
5658
}
5759

5860
{
@@ -63,6 +65,8 @@ TEST_F(metacall_plugin_extension_local_test, DefaultConstructor)
6365
EXPECT_EQ((enum metacall_value_id)METACALL_LONG, (enum metacall_value_id)metacall_value_id(ret));
6466

6567
EXPECT_EQ((long)7, (long)metacall_value_to_long(ret));
68+
69+
metacall_value_destroy(ret);
6670
}
6771
#endif /* OPTION_BUILD_LOADERS_PY */
6872

@@ -76,6 +80,8 @@ TEST_F(metacall_plugin_extension_local_test, DefaultConstructor)
7680
EXPECT_EQ((enum metacall_value_id)METACALL_DOUBLE, (enum metacall_value_id)metacall_value_id(ret));
7781

7882
EXPECT_EQ((double)8.0, (double)metacall_value_to_double(ret));
83+
84+
metacall_value_destroy(ret);
7985
}
8086
#endif /* OPTION_BUILD_LOADERS_NODE */
8187

source/tests/metacall_plugin_extension_test/source/metacall_plugin_extension_test.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ TEST_F(metacall_plugin_extension_test, DefaultConstructor)
5151
EXPECT_EQ((enum metacall_value_id)METACALL_LONG, (enum metacall_value_id)metacall_value_id(ret));
5252

5353
EXPECT_EQ((long)6, (long)metacall_value_to_long(ret));
54+
55+
metacall_value_destroy(ret);
5456
}
5557

5658
{
@@ -61,6 +63,8 @@ TEST_F(metacall_plugin_extension_test, DefaultConstructor)
6163
EXPECT_EQ((enum metacall_value_id)METACALL_LONG, (enum metacall_value_id)metacall_value_id(ret));
6264

6365
EXPECT_EQ((long)7, (long)metacall_value_to_long(ret));
66+
67+
metacall_value_destroy(ret);
6468
}
6569
#endif /* OPTION_BUILD_LOADERS_PY */
6670

@@ -74,6 +78,8 @@ TEST_F(metacall_plugin_extension_test, DefaultConstructor)
7478
EXPECT_EQ((enum metacall_value_id)METACALL_DOUBLE, (enum metacall_value_id)metacall_value_id(ret));
7579

7680
EXPECT_EQ((double)8.0, (double)metacall_value_to_double(ret));
81+
82+
metacall_value_destroy(ret);
7783
}
7884
#endif /* OPTION_BUILD_LOADERS_NODE */
7985

0 commit comments

Comments
 (0)