summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/.gitignore1
-rw-r--r--tests/lib/script1.lua1
-rw-r--r--tests/lib/test_frrscript.c37
-rw-r--r--tests/lib/test_frrscript.py8
-rw-r--r--tests/subdir.am5
5 files changed, 52 insertions, 0 deletions
diff --git a/tests/.gitignore b/tests/.gitignore
index fb2edc939a..c5c3bb87ba 100644
--- a/tests/.gitignore
+++ b/tests/.gitignore
@@ -25,6 +25,7 @@
/lib/test_atomlist
/lib/test_buffer
/lib/test_checksum
+/lib/test_frrscript
/lib/test_graph
/lib/test_heavy
/lib/test_heavy_thread
diff --git a/tests/lib/script1.lua b/tests/lib/script1.lua
new file mode 100644
index 0000000000..e9ebc29bd9
--- /dev/null
+++ b/tests/lib/script1.lua
@@ -0,0 +1 @@
+a = a + b
diff --git a/tests/lib/test_frrscript.c b/tests/lib/test_frrscript.c
new file mode 100644
index 0000000000..bd75cc5552
--- /dev/null
+++ b/tests/lib/test_frrscript.c
@@ -0,0 +1,37 @@
+/*
+ * frrscript unit tests
+ * Copyright (C) 2021 Donald Lee
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; see the file COPYING; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <zebra.h>
+
+#include "lib/frrscript.h"
+
+int main(int argc, char **argv)
+{
+ frrscript_init("./lib");
+
+ struct frrscript *fs = frrscript_load("script1", NULL);
+ long long a = 100, b = 200;
+ int result = frrscript_call(fs, ("a", &a), ("b", &b));
+
+ assert(result == 0);
+ assert(a == 300);
+ assert(b == 200);
+
+ return 0;
+}
diff --git a/tests/lib/test_frrscript.py b/tests/lib/test_frrscript.py
new file mode 100644
index 0000000000..46c6d99957
--- /dev/null
+++ b/tests/lib/test_frrscript.py
@@ -0,0 +1,8 @@
+import frrtest
+
+
+class TestFrrscript(frrtest.TestMultiOut):
+ program = "./test_frrscript"
+
+
+TestFrrscript.exit_cleanly()
diff --git a/tests/subdir.am b/tests/subdir.am
index ca477851e3..0c083debce 100644
--- a/tests/subdir.am
+++ b/tests/subdir.am
@@ -70,6 +70,7 @@ check_PROGRAMS = \
tests/lib/test_atomlist \
tests/lib/test_buffer \
tests/lib/test_checksum \
+ tests/lib/test_frrscript \
tests/lib/test_heavy_thread \
tests/lib/test_heavy_wq \
tests/lib/test_heavy \
@@ -289,6 +290,10 @@ tests_lib_test_checksum_CFLAGS = $(TESTS_CFLAGS)
tests_lib_test_checksum_CPPFLAGS = $(TESTS_CPPFLAGS)
tests_lib_test_checksum_LDADD = $(ALL_TESTS_LDADD)
tests_lib_test_checksum_SOURCES = tests/lib/test_checksum.c
+tests_lib_test_frrscript_CFLAGS = $(TESTS_CFLAGS)
+tests_lib_test_frrscript_CPPFLAGS = $(TESTS_CPPFLAGS)
+tests_lib_test_frrscript_LDADD = $(ALL_TESTS_LDADD)
+tests_lib_test_frrscript_SOURCES = tests/lib/test_frrscript.c
tests_lib_test_graph_CFLAGS = $(TESTS_CFLAGS)
tests_lib_test_graph_CPPFLAGS = $(TESTS_CPPFLAGS)
tests_lib_test_graph_LDADD = $(ALL_TESTS_LDADD)