diff --git a/tests/lib/script1.lua b/tests/lib/script1.lua index f7cd8a90b9..e911a1c941 100644 --- a/tests/lib/script1.lua +++ b/tests/lib/script1.lua @@ -18,3 +18,15 @@ function fact(n) n = helper(n) } end + +function bad_return1() +end + +function bad_return2() + return 1 +end + +function bad_return3() + error("Something bad!") +end + diff --git a/tests/lib/test_frrscript.c b/tests/lib/test_frrscript.c index 4d34b58832..3bb45a2651 100644 --- a/tests/lib/test_frrscript.c +++ b/tests/lib/test_frrscript.c @@ -36,12 +36,6 @@ int main(int argc, char **argv) assert(a == 300); assert(b == 200); - result = frrscript_load(fs, "does_not_exist", NULL); - assert(result == 1); - - result = frrscript_call(fs, "does_not_exist", ("a", &a), ("b", &b)); - assert(result == 1); - frrscript_load(fs, "fact", NULL); long long n = 5; @@ -49,5 +43,29 @@ int main(int argc, char **argv) assert(result == 0); assert(n == 120); + /* Function does not exist in script file*/ + result = frrscript_load(fs, "does_not_exist", NULL); + assert(result == 1); + + /* Function does not exist in script file*/ + result = frrscript_load(fs, "does_not_exist", NULL); + assert(result == 1); + + /* Function was not (successfully) loaded */ + result = frrscript_call(fs, "does_not_exist", ("a", &a), ("b", &b)); + assert(result == 1); + + /* Function returns void */ + result = frrscript_call(fs, "bad_return1"); + assert(result == 1); + + /* Function returns number */ + result = frrscript_call(fs, "bad_return2"); + assert(result == 1); + + /* Function throws exception */ + result = frrscript_call(fs, "bad_return3"); + assert(result == 1); + return 0; }