]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
rlm_lua: Add new tests
authorJorge Pereira <jpereiran@gmail.com>
Thu, 14 Mar 2019 02:17:02 +0000 (23:17 -0300)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Thu, 14 Mar 2019 02:30:53 +0000 (10:30 +0800)
src/tests/modules/lua/all.mk [new file with mode: 0644]
src/tests/modules/lua/auth.attrs [new file with mode: 0644]
src/tests/modules/lua/auth.unlang [new file with mode: 0644]
src/tests/modules/lua/mod1.lua [new file with mode: 0644]
src/tests/modules/lua/mod2.lua [new file with mode: 0644]
src/tests/modules/lua/mod3.lua [new file with mode: 0644]
src/tests/modules/lua/mod4.lua [new file with mode: 0644]
src/tests/modules/lua/mod5.lua [new file with mode: 0644]
src/tests/modules/lua/mod6.lua [new file with mode: 0644]
src/tests/modules/lua/mod7.lua [new file with mode: 0644]
src/tests/modules/lua/module.conf [new file with mode: 0644]

diff --git a/src/tests/modules/lua/all.mk b/src/tests/modules/lua/all.mk
new file mode 100644 (file)
index 0000000..cd5fe28
--- /dev/null
@@ -0,0 +1,9 @@
+#
+#  Test the "lua" module
+#
+
+LUA_PATH := $(top_builddir)/src/tests/modules/lua/
+export LUA_PATH
+
+#  MODULE.test is the main target for this module.
+lua.test:
diff --git a/src/tests/modules/lua/auth.attrs b/src/tests/modules/lua/auth.attrs
new file mode 100644 (file)
index 0000000..0d51387
--- /dev/null
@@ -0,0 +1,12 @@
+#
+#  Input packet
+#
+User-Name = "caipirinha"
+User-Password = "gelo"
+Called-Station-Id = "aa:bb:cc:dd:ee:ff"
+Framed-IPv6-Prefix = "11:22:33:44:55:66:77:88/128"
+
+#
+#  Expected answer
+#
+Response-Packet-Type == Access-Accept
diff --git a/src/tests/modules/lua/auth.unlang b/src/tests/modules/lua/auth.unlang
new file mode 100644 (file)
index 0000000..27a19fa
--- /dev/null
@@ -0,0 +1,49 @@
+# fr.*
+lmod1_check_fr_istable
+if (!ok) {
+    test_fail
+} else {
+    test_pass
+}
+
+lmod2_check_fr_values
+if (!ok) {
+    test_fail
+} else {
+    test_pass
+}
+
+lmod3_check_request_value
+if (!ok) {
+    test_fail
+} else {
+    test_pass
+}
+
+lmod4_request_check_user
+if (!ok) {
+    test_fail
+} else {
+    test_pass
+}
+
+lmod5_check_if_return_is_string_ok
+if (!ok) {
+    test_fail
+} else {
+    test_pass
+}
+
+lmod6_check_if_return_is_const_ok
+if (!ok) {
+    test_fail
+} else {
+    test_pass
+}
+
+lmod7_check_fr_overwrite
+if (!noop) {
+    test_fail
+} else {
+    test_pass
+}
diff --git a/src/tests/modules/lua/mod1.lua b/src/tests/modules/lua/mod1.lua
new file mode 100644 (file)
index 0000000..0a4a03b
--- /dev/null
@@ -0,0 +1,8 @@
+function authorize()
+       if not type(fr) == "table" then
+               print("error: the 'fr' should be a table")
+               return fr.fail
+       end
+
+       return fr.ok
+end
diff --git a/src/tests/modules/lua/mod2.lua b/src/tests/modules/lua/mod2.lua
new file mode 100644 (file)
index 0000000..9c430d9
--- /dev/null
@@ -0,0 +1,17 @@
+function authorize()
+       for k, v in pairs(fr) do
+               -- print("debug: table fr = { k: "..k.. "=("..type(k).."), v: "..v.."=("..type(v)..") }")
+
+               if not type(k) == "string" then
+                       print("error: the k should be a string")
+                       return fr.fail
+               end
+
+               if not type(v) == "number" then
+                       print("error: the v should be a number")
+                       return fr.fail
+               end
+       end
+
+       return fr.ok
+end
diff --git a/src/tests/modules/lua/mod3.lua b/src/tests/modules/lua/mod3.lua
new file mode 100644 (file)
index 0000000..3c8da36
--- /dev/null
@@ -0,0 +1,8 @@
+function authorize()
+       for k, v in request.pairs() do
+               if k == "Framed-IPv6-Prefix" and v == "11:22:33:44:55:66:77:88/128" then
+                       return fr.ok
+               end
+       end
+       return fr.fail
+end
diff --git a/src/tests/modules/lua/mod4.lua b/src/tests/modules/lua/mod4.lua
new file mode 100644 (file)
index 0000000..26e5d03
--- /dev/null
@@ -0,0 +1,8 @@
+function authorize()
+       for k, v in request.pairs() do
+               if k == "User-Name" and v == "caipirinha" then
+                       return fr.ok
+               end
+       end
+       return fr.fail
+end
diff --git a/src/tests/modules/lua/mod5.lua b/src/tests/modules/lua/mod5.lua
new file mode 100644 (file)
index 0000000..0edb3ad
--- /dev/null
@@ -0,0 +1,3 @@
+function authorize()
+       return fr.ok
+end
diff --git a/src/tests/modules/lua/mod6.lua b/src/tests/modules/lua/mod6.lua
new file mode 100644 (file)
index 0000000..3c5b77d
--- /dev/null
@@ -0,0 +1,3 @@
+function authorize()
+       return "ok"
+end
diff --git a/src/tests/modules/lua/mod7.lua b/src/tests/modules/lua/mod7.lua
new file mode 100644 (file)
index 0000000..807c8d8
--- /dev/null
@@ -0,0 +1,6 @@
+function authorize()
+       print("mod7: trying to overwrite fr.noop with 12345 (current value "..fr.noop..")")
+       fr.noop = 12345
+       print("mod7: Checking the fr.noop value: "..fr.noop)
+       return fr.noop
+end
diff --git a/src/tests/modules/lua/module.conf b/src/tests/modules/lua/module.conf
new file mode 100644 (file)
index 0000000..e94c0f9
--- /dev/null
@@ -0,0 +1,36 @@
+    lua lmod1_check_fr_istable {
+    filename = "src/tests/modules/lua/mod1.lua"
+    func_authorize = authorize
+}
+
+lua lmod2_check_fr_values {
+    filename = "src/tests/modules/lua/mod2.lua"
+    func_authorize = authorize
+}
+
+lua lmod3_check_request_value {
+    filename = "src/tests/modules/lua/mod3.lua"
+    func_authorize = authorize
+}
+
+lua lmod4_request_check_user {
+    filename = "src/tests/modules/lua/mod4.lua"
+    func_authorize = authorize
+}
+
+lua lmod5_check_if_return_is_string_ok {
+    filename = "src/tests/modules/lua/mod5.lua"
+    func_authorize = authorize
+}
+
+lua lmod6_check_if_return_is_const_ok {
+    filename = "src/tests/modules/lua/mod6.lua"
+    func_authorize = authorize
+}
+
+lua lmod7_check_fr_overwrite {
+    filename = "src/tests/modules/lua/mod7.lua"
+    func_authorize = authorize
+}
+
+