From 77df36c3b9533ce98e3a3177aa0bf86a45e404f6 Mon Sep 17 00:00:00 2001 From: Donatas Abraitis Date: Mon, 18 Nov 2024 11:10:05 +0200 Subject: [PATCH] lib: Fix Lua script unit test When building for big-endian architectures, this is failing because of long long / int casting issues, let's use a separate integer to get the results. This is especially important when building the Docker images for multiple arches. Signed-off-by: Donatas Abraitis --- tests/lib/test_frrscript.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/tests/lib/test_frrscript.c b/tests/lib/test_frrscript.c index 9698aeaa6cb1..9e9d672a1ebd 100644 --- a/tests/lib/test_frrscript.c +++ b/tests/lib/test_frrscript.c @@ -49,15 +49,16 @@ int main(int argc, char **argv) long long *ansptr = frrscript_get_result(fs, "fact", "ans", lua_tolonglongp); assert(*ansptr == 120); + XFREE(MTYPE_SCRIPT_RES, ansptr); /* check consecutive call + get_result without re-loading */ n = 4; result = frrscript_call(fs, "fact", ("n", &n)); assert(result == 0); - ansptr = frrscript_get_result(fs, "fact", "ans", lua_tointegerp); - assert(*ansptr == 24); + int *ansptr_c = frrscript_get_result(fs, "fact", "ans", lua_tointegerp); - XFREE(MTYPE_SCRIPT_RES, ansptr); + assert(*ansptr_c == 24); + XFREE(MTYPE_SCRIPT_RES, ansptr_c); /* Negative testing */ @@ -70,9 +71,9 @@ int main(int argc, char **argv) assert(result == 1); /* Get result from a function that was not loaded */ - long long *llptr = - frrscript_get_result(fs, "does_not_exist", "c", lua_tointegerp); - assert(llptr == NULL); + int *intptr = frrscript_get_result(fs, "does_not_exist", "c", lua_tointegerp); + + assert(intptr == NULL); /* Function returns void */ result = frrscript_call(fs, "bad_return1"); @@ -85,9 +86,9 @@ int main(int argc, char **argv) /* Get non-existent result from a function */ result = frrscript_call(fs, "bad_return3"); assert(result == 1); - long long *cllptr = - frrscript_get_result(fs, "bad_return3", "c", lua_tointegerp); - assert(cllptr == NULL); + intptr = frrscript_get_result(fs, "bad_return3", "c", lua_tointegerp); + assert(intptr == NULL); + XFREE(MTYPE_SCRIPT_RES, intptr); /* Function throws exception */ result = frrscript_call(fs, "bad_return4");