From: Jorge Pereira Date: Thu, 14 Mar 2019 02:17:02 +0000 (-0300) Subject: rlm_lua: Add new tests X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0612fb012272c1af2bbf23322a8b6284dccdbc90;p=thirdparty%2Ffreeradius-server.git rlm_lua: Add new tests --- diff --git a/src/tests/modules/lua/all.mk b/src/tests/modules/lua/all.mk new file mode 100644 index 00000000000..cd5fe28d763 --- /dev/null +++ b/src/tests/modules/lua/all.mk @@ -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 index 00000000000..0d513871fd1 --- /dev/null +++ b/src/tests/modules/lua/auth.attrs @@ -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 index 00000000000..27a19fab938 --- /dev/null +++ b/src/tests/modules/lua/auth.unlang @@ -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 index 00000000000..0a4a03b55b5 --- /dev/null +++ b/src/tests/modules/lua/mod1.lua @@ -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 index 00000000000..9c430d92912 --- /dev/null +++ b/src/tests/modules/lua/mod2.lua @@ -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 index 00000000000..3c8da36df96 --- /dev/null +++ b/src/tests/modules/lua/mod3.lua @@ -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 index 00000000000..26e5d0356d6 --- /dev/null +++ b/src/tests/modules/lua/mod4.lua @@ -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 index 00000000000..0edb3ada628 --- /dev/null +++ b/src/tests/modules/lua/mod5.lua @@ -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 index 00000000000..3c5b77d6507 --- /dev/null +++ b/src/tests/modules/lua/mod6.lua @@ -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 index 00000000000..807c8d8d834 --- /dev/null +++ b/src/tests/modules/lua/mod7.lua @@ -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 index 00000000000..e94c0f9be76 --- /dev/null +++ b/src/tests/modules/lua/module.conf @@ -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 +} + +