summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/lib/script1.lua12
-rw-r--r--tests/lib/test_frrscript.c28
2 files changed, 35 insertions, 5 deletions
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,18 +36,36 @@ int main(int argc, char **argv)
assert(a == 300);
assert(b == 200);
+ frrscript_load(fs, "fact", NULL);
+ long long n = 5;
+
+ result = frrscript_call(fs, "fact", ("n", &n));
+ 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);
- frrscript_load(fs, "fact", NULL);
- long long n = 5;
+ /* Function returns void */
+ result = frrscript_call(fs, "bad_return1");
+ assert(result == 1);
- result = frrscript_call(fs, "fact", ("n", &n));
- assert(result == 0);
- assert(n == 120);
+ /* 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;
}