diff options
Diffstat (limited to '')
66 files changed, 732 insertions, 0 deletions
diff --git a/src/tests/modules/sql/.gitignore b/src/tests/modules/sql/.gitignore new file mode 100644 index 0000000..405551a --- /dev/null +++ b/src/tests/modules/sql/.gitignore @@ -0,0 +1 @@ +rlm_sql_sqlite.db diff --git a/src/tests/modules/sql/acct_0_start.attrs b/src/tests/modules/sql/acct_0_start.attrs new file mode 100644 index 0000000..01257ce --- /dev/null +++ b/src/tests/modules/sql/acct_0_start.attrs @@ -0,0 +1,37 @@ +# +# Input packet +# +User-Name = 'user0@example.org' +NAS-Port = 17826193 +NAS-IP-Address = 192.0.2.10 +Framed-IP-Address = 198.51.100.59 +NAS-Identifier = 'nas.example.org' +Acct-Status-Type = Start +Acct-Delay-Time = 1 +Acct-Input-Octets = 0 +Acct-Output-Octets = 0 +Acct-Session-Id = '00000000' +Acct-Unique-Session-Id = '00000000' +Acct-Authentic = RADIUS +Acct-Session-Time = 0 +Acct-Input-Packets = 0 +Acct-Output-Packets = 0 +Acct-Input-Gigawords = 0 +Acct-Output-Gigawords = 0 +Event-Timestamp = 'Feb 1 2015 08:28:58 WIB' +NAS-Port-Type = Ethernet +NAS-Port-Id = 'port 001' +Service-Type = Framed-User +Framed-Protocol = PPP +Acct-Link-Count = 0 +Idle-Timeout = 0 +Session-Timeout = 604800 +Access-Loop-Encapsulation = 0x000000 +Proxy-State = 0x323531 + +# +# Expected answer +# +# There's not an Accounting-Failed packet type in RADIUS... +# +Response-Packet-Type == Access-Accept diff --git a/src/tests/modules/sql/acct_0_start.unlang b/src/tests/modules/sql/acct_0_start.unlang new file mode 100644 index 0000000..64921b1 --- /dev/null +++ b/src/tests/modules/sql/acct_0_start.unlang @@ -0,0 +1,40 @@ +# +# Clear out old data +# +update { + Tmp-String-0 := "%{sql:DELETE FROM radacct WHERE AcctSessionId = '00000000'}" +} +if (!&Tmp-String-0) { + test_fail +} +else { + test_pass +} + +sql.accounting +if (ok) { + test_pass +} +else { + test_fail +} + +update { + Tmp-Integer-0 := "%{sql:SELECT count(*) FROM radacct WHERE AcctSessionId = '00000000'}" +} +if (!&Tmp-Integer-0 || (&Tmp-Integer-0 != 1)) { + test_fail +} +else { + test_pass +} + +update { + Tmp-Integer-0 := "%{sql:SELECT acctsessiontime FROM radacct WHERE AcctSessionId = '00000000'}" +} +if (!&Tmp-Integer-0 || (&Tmp-Integer-0 != 0)) { + test_fail +} +else { + test_pass +} diff --git a/src/tests/modules/sql/acct_1_update.attrs b/src/tests/modules/sql/acct_1_update.attrs new file mode 100644 index 0000000..28db958 --- /dev/null +++ b/src/tests/modules/sql/acct_1_update.attrs @@ -0,0 +1,37 @@ +# +# Input packet +# +User-Name = 'user1@example.org' +NAS-Port = 17826193 +NAS-IP-Address = 192.0.2.10 +Framed-IP-Address = 198.51.100.59 +NAS-Identifier = 'nas.example.org' +Acct-Status-Type = Interim-Update +Acct-Delay-Time = 1 +Acct-Input-Octets = 10 +Acct-Output-Octets = 10 +Acct-Session-Id = '00000001' +Acct-Unique-Session-Id = '00000001' +Acct-Authentic = RADIUS +Acct-Session-Time = 30 +Acct-Input-Packets = 10 +Acct-Output-Packets = 10 +Acct-Input-Gigawords = 1 +Acct-Output-Gigawords = 1 +Event-Timestamp = 'Feb 1 2015 08:28:28 WIB' +NAS-Port-Type = Ethernet +NAS-Port-Id = 'port 001' +Service-Type = Framed-User +Framed-Protocol = PPP +Acct-Link-Count = 0 +Idle-Timeout = 0 +Session-Timeout = 604800 +Access-Loop-Encapsulation = 0x000000 +Proxy-State = 0x323531 + +# +# Expected answer +# +# There's not an Accounting-Failed packet type in RADIUS... +# +Response-Packet-Type == Access-Accept diff --git a/src/tests/modules/sql/acct_1_update.unlang b/src/tests/modules/sql/acct_1_update.unlang new file mode 100644 index 0000000..e566a4a --- /dev/null +++ b/src/tests/modules/sql/acct_1_update.unlang @@ -0,0 +1,30 @@ +# +# PRE: acct_0_start +# +sql.accounting +if (ok) { + test_pass +} +else { + test_fail +} + +update { + Tmp-Integer-0 := "%{sql:SELECT count(*) FROM radacct WHERE AcctSessionId = '00000001'}" +} +if (!&Tmp-Integer-0 || (&Tmp-Integer-0 != 1)) { + test_fail +} +else { + test_pass +} + +update { + Tmp-Integer-0 := "%{sql:SELECT acctsessiontime FROM radacct WHERE AcctSessionId = '00000001'}" +} +if (!&Tmp-Integer-0 || (&Tmp-Integer-0 != 30)) { + test_fail +} +else { + test_pass +} diff --git a/src/tests/modules/sql/acct_2_stop.attrs b/src/tests/modules/sql/acct_2_stop.attrs new file mode 100644 index 0000000..e932f84 --- /dev/null +++ b/src/tests/modules/sql/acct_2_stop.attrs @@ -0,0 +1,38 @@ +# +# Input packet +# +User-Name = 'user2@example.org' +NAS-Port = 17826193 +NAS-IP-Address = 192.0.2.10 +Framed-IP-Address = 198.51.100.59 +NAS-Identifier = 'nas.example.org' +Acct-Status-Type = Stop +Acct-Terminate-Cause = User-Request +Acct-Delay-Time = 1 +Acct-Input-Octets = 15 +Acct-Output-Octets = 15 +Acct-Session-Id = '00000002' +Acct-Unique-Session-Id = '00000002' +Acct-Authentic = RADIUS +Acct-Session-Time = 120 +Acct-Input-Packets = 15 +Acct-Output-Packets = 15 +Acct-Input-Gigawords = 1 +Acct-Output-Gigawords = 1 +Event-Timestamp = 'Feb 1 2015 08:28:58 WIB' +NAS-Port-Type = Ethernet +NAS-Port-Id = 'port 001' +Service-Type = Framed-User +Framed-Protocol = PPP +Acct-Link-Count = 0 +Idle-Timeout = 0 +Session-Timeout = 604800 +Access-Loop-Encapsulation = 0x000000 +Proxy-State = 0x323531 + +# +# Expected answer +# +# There's not an Accounting-Failed packet type in RADIUS... +# +Response-Packet-Type == Access-Accept diff --git a/src/tests/modules/sql/acct_2_stop.unlang b/src/tests/modules/sql/acct_2_stop.unlang new file mode 100644 index 0000000..3386c71 --- /dev/null +++ b/src/tests/modules/sql/acct_2_stop.unlang @@ -0,0 +1,40 @@ +# +# PRE: acct_1_update +# +sql.accounting +if (ok) { + test_pass +} +else { + test_fail +} + +update { + Tmp-Integer-0 := "%{sql:SELECT count(*) FROM radacct WHERE AcctSessionId = '00000002'}" +} +if (!&Tmp-Integer-0 || (&Tmp-Integer-0 != 1)) { + test_fail +} +else { + test_pass +} + +update { + Tmp-Integer-0 := "%{sql:SELECT acctsessiontime FROM radacct WHERE AcctSessionId = '00000002'}" +} +if (!&Tmp-Integer-0 || (&Tmp-Integer-0 != 120)) { + test_fail +} +else { + test_pass +} + +update { + Tmp-String-0 := "%{sql:SELECT AcctTerminateCause FROM radacct WHERE AcctSessionId = '00000002'}" +} +if (!&Tmp-String-0 || (&Tmp-String-0 != 'User-Request')) { + test_fail +} +else { + test_pass +} diff --git a/src/tests/modules/sql/acct_start_conflict.attrs b/src/tests/modules/sql/acct_start_conflict.attrs new file mode 100644 index 0000000..2bcade3 --- /dev/null +++ b/src/tests/modules/sql/acct_start_conflict.attrs @@ -0,0 +1,37 @@ +# +# Input packet +# +User-Name = 'user3@example.org' +NAS-Port = 17826193 +NAS-IP-Address = 192.0.2.10 +Framed-IP-Address = 198.51.100.59 +NAS-Identifier = 'nas.example.org' +Acct-Status-Type = Start +Acct-Delay-Time = 1 +Acct-Input-Octets = 0 +Acct-Output-Octets = 0 +Acct-Session-Id = '00000003' +Acct-Unique-Session-Id = '00000003' +Acct-Authentic = RADIUS +Acct-Session-Time = 0 +Acct-Input-Packets = 0 +Acct-Output-Packets = 0 +Acct-Input-Gigawords = 0 +Acct-Output-Gigawords = 0 +Event-Timestamp = 'Feb 1 2015 08:28:58 WIB' +NAS-Port-Type = Ethernet +NAS-Port-Id = 'port 001' +Service-Type = Framed-User +Framed-Protocol = PPP +Acct-Link-Count = 0 +Idle-Timeout = 0 +Session-Timeout = 604800 +Access-Loop-Encapsulation = 0x000000 +Proxy-State = 0x323531 + +# +# Expected answer +# +# There's not an Accounting-Failed packet type in RADIUS... +# +Response-Packet-Type == Access-Accept diff --git a/src/tests/modules/sql/acct_start_conflict.unlang b/src/tests/modules/sql/acct_start_conflict.unlang new file mode 100644 index 0000000..65e69e0 --- /dev/null +++ b/src/tests/modules/sql/acct_start_conflict.unlang @@ -0,0 +1,76 @@ +# +# Check that conflicting unique IDs triggers failover to alternative query +# + +# +# Clear out old data +# +update { + Tmp-String-0 := "%{sql:DELETE FROM radacct WHERE AcctSessionId = '00000003'}" +} +if (!&Tmp-String-0) { + test_fail +} +else { + test_pass +} + +# +# Insert the Accounting-Request start +# +sql.accounting +if (ok) { + test_pass +} +else { + test_fail +} + +# +# Check the database has at least one row +# +update { + Tmp-Integer-0 := "%{sql:SELECT count(*) FROM radacct WHERE AcctSessionId = '00000003'}" +} +if (!&Tmp-Integer-0 || (&Tmp-Integer-0 != 1)) { + test_fail +} +else { + test_pass +} + +# +# Check acctsessiontime matches the value in the request +# +update { + Tmp-Integer-0 := "%{sql:SELECT acctsessiontime FROM radacct WHERE AcctSessionId = '00000003'}" +} +if (!&Tmp-Integer-0 || (&Tmp-Integer-0 != 0)) { + test_fail +} +else { + test_pass +} + +# +# Change acctsessiontime and verify it's updated +# +update request { + Connect-Info = 'updated' +} +sql.accounting +if (ok) { + test_pass +} +else { + test_fail +} +update { + Tmp-String-0 := "%{sql:SELECT connectinfo_start FROM radacct WHERE AcctSessionId = '00000003'}" +} +if (!&Tmp-Integer-0 || (&Tmp-String-0 != 'updated')) { + test_fail +} +else { + test_pass +} diff --git a/src/tests/modules/sql/acct_update_no_start.attrs b/src/tests/modules/sql/acct_update_no_start.attrs new file mode 100644 index 0000000..6f3049e --- /dev/null +++ b/src/tests/modules/sql/acct_update_no_start.attrs @@ -0,0 +1,37 @@ +# +# Input packet +# +User-Name = 'user4@example.org' +NAS-Port = 17826193 +NAS-IP-Address = 192.0.2.10 +Framed-IP-Address = 198.51.100.59 +NAS-Identifier = 'nas.example.org' +Acct-Status-Type = Interim-Update +Acct-Delay-Time = 1 +Acct-Input-Octets = 10 +Acct-Output-Octets = 10 +Acct-Session-Id = '00000004' +Acct-Unique-Session-Id = '00000004' +Acct-Authentic = RADIUS +Acct-Session-Time = 30 +Acct-Input-Packets = 10 +Acct-Output-Packets = 10 +Acct-Input-Gigawords = 1 +Acct-Output-Gigawords = 1 +Event-Timestamp = 'Feb 1 2015 08:28:28 WIB' +NAS-Port-Type = Ethernet +NAS-Port-Id = 'port 001' +Service-Type = Framed-User +Framed-Protocol = PPP +Acct-Link-Count = 0 +Idle-Timeout = 0 +Session-Timeout = 604800 +Access-Loop-Encapsulation = 0x000000 +Proxy-State = 0x323531 + +# +# Expected answer +# +# There's not an Accounting-Failed packet type in RADIUS... +# +Response-Packet-Type == Access-Accept diff --git a/src/tests/modules/sql/acct_update_no_start.unlang b/src/tests/modules/sql/acct_update_no_start.unlang new file mode 100644 index 0000000..3875b2d --- /dev/null +++ b/src/tests/modules/sql/acct_update_no_start.unlang @@ -0,0 +1,40 @@ +# +# Clear out old data +# +update { + Tmp-String-0 := "%{sql:DELETE FROM radacct WHERE AcctSessionId = '00000004'}" +} +if (!&Tmp-String-0) { + test_fail +} +else { + test_pass +} + +sql.accounting +if (ok) { + test_pass +} +else { + test_fail +} + +update { + Tmp-Integer-0 := "%{sql:SELECT count(*) FROM radacct WHERE AcctSessionId = '00000004'}" +} +if (!&Tmp-Integer-0 || (&Tmp-Integer-0 != 1)) { + test_fail +} +else { + test_pass +} + +update { + Tmp-Integer-0 := "%{sql:SELECT acctsessiontime FROM radacct WHERE AcctSessionId = '00000004'}" +} +if (!&Tmp-Integer-0 || (&Tmp-Integer-0 != 30)) { + test_fail +} +else { + test_pass +} diff --git a/src/tests/modules/sql/auth.attrs b/src/tests/modules/sql/auth.attrs new file mode 100644 index 0000000..e7d1498 --- /dev/null +++ b/src/tests/modules/sql/auth.attrs @@ -0,0 +1,12 @@ +# +# Input packet +# +User-Name = "user_auth" +User-Password = "password" +NAS-IP-Address = "1.2.3.4" + +# +# Expected answer +# +Response-Packet-Type == Access-Accept +Idle-Timeout == 3600 diff --git a/src/tests/modules/sql/auth.unlang b/src/tests/modules/sql/auth.unlang new file mode 100644 index 0000000..0d76538 --- /dev/null +++ b/src/tests/modules/sql/auth.unlang @@ -0,0 +1,39 @@ +# +# Clear out old data +# +update { + Tmp-String-0 := "%{sql:DELETE FROM radcheck WHERE username = 'user_auth'}" +} +if (!&Tmp-String-0) { + test_fail +} + +update { + Tmp-String-0 := "%{sql:INSERT INTO radcheck (username, attribute, op, value) VALUES ('user_auth', 'NAS-IP-Address', '==', '1.2.3.4')}" +} +if (!&Tmp-String-0) { + test_fail +} + +update { + Tmp-String-0 := "%{sql:INSERT INTO radcheck (username, attribute, op, value) VALUES ('user_auth', 'Cleartext-Password', ':=', 'password')}" +} +if (!&Tmp-String-0) { + test_fail +} + +update { + Tmp-String-0 := "%{sql:DELETE FROM radreply WHERE username = 'user_auth'}" +} +if (!&Tmp-String-0) { + test_fail +} + +update { + Tmp-String-0 := "%{sql:INSERT INTO radreply (username, attribute, op, value) VALUES ('user_auth', 'Idle-Timeout', ':=', '3600')}" +} +if (!&Tmp-String-0) { + test_fail +} + +sql diff --git a/src/tests/modules/sql/reject.attrs b/src/tests/modules/sql/reject.attrs new file mode 100644 index 0000000..cb0b9a2 --- /dev/null +++ b/src/tests/modules/sql/reject.attrs @@ -0,0 +1,12 @@ +# +# Input packet +# +User-Name = "user_reject" +User-Password = "password" +NAS-IP-Address = "1.2.3.4" + +# +# Expected answer +# +Response-Packet-Type == Access-Reject +Reply-Message == "Authentication failed" diff --git a/src/tests/modules/sql/reject.unlang b/src/tests/modules/sql/reject.unlang new file mode 100644 index 0000000..b4afb09 --- /dev/null +++ b/src/tests/modules/sql/reject.unlang @@ -0,0 +1,39 @@ +# +# Clear out old data +# +update { + Tmp-String-0 := "%{sql:DELETE FROM radcheck WHERE username = 'user_reject'}" +} +if (!&Tmp-String-0) { + test_fail +} + +update { + Tmp-String-0 := "%{sql:INSERT INTO radcheck (username, attribute, op, value) VALUES ('user_reject', 'NAS-IP-Address', '==', '1.2.3.4')}" +} +if (!&Tmp-String-0) { + test_fail +} + +update { + Tmp-String-0 := "%{sql:INSERT INTO radcheck (username, attribute, op, value) VALUES ('user_reject', 'Cleartext-Password', ':=', 'wrong-password')}" +} +if (!&Tmp-String-0) { + test_fail +} + +update { + Tmp-String-0 := "%{sql:DELETE FROM radreply WHERE username = 'user_reject'}" +} +if (!&Tmp-String-0) { + test_fail +} + +update { + Tmp-String-0 := "%{sql:INSERT INTO radreply (username, attribute, op, value) VALUES ('user_reject', 'Reply-Message', ':=', 'Authentication failed')}" +} +if (!&Tmp-String-0) { + test_fail +} + +sql diff --git a/src/tests/modules/sql_mysql/.gitignore b/src/tests/modules/sql_mysql/.gitignore new file mode 100644 index 0000000..405551a --- /dev/null +++ b/src/tests/modules/sql_mysql/.gitignore @@ -0,0 +1 @@ +rlm_sql_sqlite.db diff --git a/src/tests/modules/sql_mysql/acct_0_start.attrs b/src/tests/modules/sql_mysql/acct_0_start.attrs new file mode 120000 index 0000000..24e17ae --- /dev/null +++ b/src/tests/modules/sql_mysql/acct_0_start.attrs @@ -0,0 +1 @@ +../sql/acct_0_start.attrs
\ No newline at end of file diff --git a/src/tests/modules/sql_mysql/acct_0_start.unlang b/src/tests/modules/sql_mysql/acct_0_start.unlang new file mode 120000 index 0000000..3fe3e99 --- /dev/null +++ b/src/tests/modules/sql_mysql/acct_0_start.unlang @@ -0,0 +1 @@ +../sql/acct_0_start.unlang
\ No newline at end of file diff --git a/src/tests/modules/sql_mysql/acct_1_update.attrs b/src/tests/modules/sql_mysql/acct_1_update.attrs new file mode 120000 index 0000000..1ab772d --- /dev/null +++ b/src/tests/modules/sql_mysql/acct_1_update.attrs @@ -0,0 +1 @@ +../sql/acct_1_update.attrs
\ No newline at end of file diff --git a/src/tests/modules/sql_mysql/acct_1_update.unlang b/src/tests/modules/sql_mysql/acct_1_update.unlang new file mode 120000 index 0000000..b69ff9b --- /dev/null +++ b/src/tests/modules/sql_mysql/acct_1_update.unlang @@ -0,0 +1 @@ +../sql/acct_1_update.unlang
\ No newline at end of file diff --git a/src/tests/modules/sql_mysql/acct_2_stop.attrs b/src/tests/modules/sql_mysql/acct_2_stop.attrs new file mode 120000 index 0000000..ea73931 --- /dev/null +++ b/src/tests/modules/sql_mysql/acct_2_stop.attrs @@ -0,0 +1 @@ +../sql/acct_2_stop.attrs
\ No newline at end of file diff --git a/src/tests/modules/sql_mysql/acct_2_stop.unlang b/src/tests/modules/sql_mysql/acct_2_stop.unlang new file mode 120000 index 0000000..ea0be56 --- /dev/null +++ b/src/tests/modules/sql_mysql/acct_2_stop.unlang @@ -0,0 +1 @@ +../sql/acct_2_stop.unlang
\ No newline at end of file diff --git a/src/tests/modules/sql_mysql/acct_start_conflict.attrs b/src/tests/modules/sql_mysql/acct_start_conflict.attrs new file mode 120000 index 0000000..117a505 --- /dev/null +++ b/src/tests/modules/sql_mysql/acct_start_conflict.attrs @@ -0,0 +1 @@ +../sql/acct_start_conflict.attrs
\ No newline at end of file diff --git a/src/tests/modules/sql_mysql/acct_start_conflict.unlang b/src/tests/modules/sql_mysql/acct_start_conflict.unlang new file mode 120000 index 0000000..da35798 --- /dev/null +++ b/src/tests/modules/sql_mysql/acct_start_conflict.unlang @@ -0,0 +1 @@ +../sql/acct_start_conflict.unlang
\ No newline at end of file diff --git a/src/tests/modules/sql_mysql/acct_update_no_start.attrs b/src/tests/modules/sql_mysql/acct_update_no_start.attrs new file mode 120000 index 0000000..328867f --- /dev/null +++ b/src/tests/modules/sql_mysql/acct_update_no_start.attrs @@ -0,0 +1 @@ +../sql/acct_update_no_start.attrs
\ No newline at end of file diff --git a/src/tests/modules/sql_mysql/acct_update_no_start.unlang b/src/tests/modules/sql_mysql/acct_update_no_start.unlang new file mode 120000 index 0000000..6837977 --- /dev/null +++ b/src/tests/modules/sql_mysql/acct_update_no_start.unlang @@ -0,0 +1 @@ +../sql/acct_update_no_start.unlang
\ No newline at end of file diff --git a/src/tests/modules/sql_mysql/all.mk b/src/tests/modules/sql_mysql/all.mk new file mode 100644 index 0000000..337528b --- /dev/null +++ b/src/tests/modules/sql_mysql/all.mk @@ -0,0 +1,6 @@ +# +# Test the mysql module +# + +# Don't test sql_mysql if TEST_SERVER ENV is not set +sql_mysql_require_test_server := 1 diff --git a/src/tests/modules/sql_mysql/auth.attrs b/src/tests/modules/sql_mysql/auth.attrs new file mode 120000 index 0000000..6b30b6b --- /dev/null +++ b/src/tests/modules/sql_mysql/auth.attrs @@ -0,0 +1 @@ +../sql/auth.attrs
\ No newline at end of file diff --git a/src/tests/modules/sql_mysql/auth.unlang b/src/tests/modules/sql_mysql/auth.unlang new file mode 120000 index 0000000..3ccd80e --- /dev/null +++ b/src/tests/modules/sql_mysql/auth.unlang @@ -0,0 +1 @@ +../sql/auth.unlang
\ No newline at end of file diff --git a/src/tests/modules/sql_mysql/module.conf b/src/tests/modules/sql_mysql/module.conf new file mode 100644 index 0000000..e3aa02d --- /dev/null +++ b/src/tests/modules/sql_mysql/module.conf @@ -0,0 +1,53 @@ +sql { + driver = "rlm_sql_mysql" + dialect = "mysql" + + # Connection info: + # + server = $ENV{SQL_MYSQL_TEST_SERVER} + port = 3306 + login = "radius" + password = "radpass" + + # Database table configuration for everything except Oracle + radius_db = "radius" + radius_db = "radius" + + acct_table1 = "radacct" + acct_table2 = "radacct" + postauth_table = "radpostauth" + authcheck_table = "radcheck" + groupcheck_table = "radgroupcheck" + authreply_table = "radreply" + groupreply_table = "radgroupreply" + usergroup_table = "radusergroup" + read_groups = yes + read_profiles = yes + + # Remove stale session if checkrad does not see a double login + delete_stale_sessions = yes + + pool { + start = 1 + min = 0 + max = 1 + spare = 3 + uses = 2 + lifetime = 1 + idle_timeout = 60 + retry_delay = 1 + } + + # Set to 'yes' to read radius clients from the database ('nas' table) + # Clients will ONLY be read on server startup. +# read_clients = yes + + # Table to keep radius client info + client_table = "nas" + + # The group attribute specific to this instance of rlm_sql + group_attribute = "SQL-Group" + + # Read database-specific queries + $INCLUDE ${modconfdir}/${.:name}/main/${dialect}/queries.conf +} diff --git a/src/tests/modules/sql_mysql/reject.attrs b/src/tests/modules/sql_mysql/reject.attrs new file mode 120000 index 0000000..71a187f --- /dev/null +++ b/src/tests/modules/sql_mysql/reject.attrs @@ -0,0 +1 @@ +../sql/reject.attrs
\ No newline at end of file diff --git a/src/tests/modules/sql_mysql/reject.unlang b/src/tests/modules/sql_mysql/reject.unlang new file mode 120000 index 0000000..379839f --- /dev/null +++ b/src/tests/modules/sql_mysql/reject.unlang @@ -0,0 +1 @@ +../sql/reject.unlang
\ No newline at end of file diff --git a/src/tests/modules/sql_postgresql/.gitignore b/src/tests/modules/sql_postgresql/.gitignore new file mode 100644 index 0000000..405551a --- /dev/null +++ b/src/tests/modules/sql_postgresql/.gitignore @@ -0,0 +1 @@ +rlm_sql_sqlite.db diff --git a/src/tests/modules/sql_postgresql/acct_0_start.attrs b/src/tests/modules/sql_postgresql/acct_0_start.attrs new file mode 120000 index 0000000..24e17ae --- /dev/null +++ b/src/tests/modules/sql_postgresql/acct_0_start.attrs @@ -0,0 +1 @@ +../sql/acct_0_start.attrs
\ No newline at end of file diff --git a/src/tests/modules/sql_postgresql/acct_0_start.unlang b/src/tests/modules/sql_postgresql/acct_0_start.unlang new file mode 120000 index 0000000..3fe3e99 --- /dev/null +++ b/src/tests/modules/sql_postgresql/acct_0_start.unlang @@ -0,0 +1 @@ +../sql/acct_0_start.unlang
\ No newline at end of file diff --git a/src/tests/modules/sql_postgresql/acct_1_update.attrs b/src/tests/modules/sql_postgresql/acct_1_update.attrs new file mode 120000 index 0000000..1ab772d --- /dev/null +++ b/src/tests/modules/sql_postgresql/acct_1_update.attrs @@ -0,0 +1 @@ +../sql/acct_1_update.attrs
\ No newline at end of file diff --git a/src/tests/modules/sql_postgresql/acct_1_update.unlang b/src/tests/modules/sql_postgresql/acct_1_update.unlang new file mode 120000 index 0000000..b69ff9b --- /dev/null +++ b/src/tests/modules/sql_postgresql/acct_1_update.unlang @@ -0,0 +1 @@ +../sql/acct_1_update.unlang
\ No newline at end of file diff --git a/src/tests/modules/sql_postgresql/acct_2_stop.attrs b/src/tests/modules/sql_postgresql/acct_2_stop.attrs new file mode 120000 index 0000000..ea73931 --- /dev/null +++ b/src/tests/modules/sql_postgresql/acct_2_stop.attrs @@ -0,0 +1 @@ +../sql/acct_2_stop.attrs
\ No newline at end of file diff --git a/src/tests/modules/sql_postgresql/acct_2_stop.unlang b/src/tests/modules/sql_postgresql/acct_2_stop.unlang new file mode 120000 index 0000000..ea0be56 --- /dev/null +++ b/src/tests/modules/sql_postgresql/acct_2_stop.unlang @@ -0,0 +1 @@ +../sql/acct_2_stop.unlang
\ No newline at end of file diff --git a/src/tests/modules/sql_postgresql/acct_start_conflict.attrs b/src/tests/modules/sql_postgresql/acct_start_conflict.attrs new file mode 120000 index 0000000..117a505 --- /dev/null +++ b/src/tests/modules/sql_postgresql/acct_start_conflict.attrs @@ -0,0 +1 @@ +../sql/acct_start_conflict.attrs
\ No newline at end of file diff --git a/src/tests/modules/sql_postgresql/acct_start_conflict.unlang b/src/tests/modules/sql_postgresql/acct_start_conflict.unlang new file mode 120000 index 0000000..da35798 --- /dev/null +++ b/src/tests/modules/sql_postgresql/acct_start_conflict.unlang @@ -0,0 +1 @@ +../sql/acct_start_conflict.unlang
\ No newline at end of file diff --git a/src/tests/modules/sql_postgresql/acct_update_no_start.attrs b/src/tests/modules/sql_postgresql/acct_update_no_start.attrs new file mode 120000 index 0000000..328867f --- /dev/null +++ b/src/tests/modules/sql_postgresql/acct_update_no_start.attrs @@ -0,0 +1 @@ +../sql/acct_update_no_start.attrs
\ No newline at end of file diff --git a/src/tests/modules/sql_postgresql/acct_update_no_start.unlang b/src/tests/modules/sql_postgresql/acct_update_no_start.unlang new file mode 120000 index 0000000..6837977 --- /dev/null +++ b/src/tests/modules/sql_postgresql/acct_update_no_start.unlang @@ -0,0 +1 @@ +../sql/acct_update_no_start.unlang
\ No newline at end of file diff --git a/src/tests/modules/sql_postgresql/all.mk b/src/tests/modules/sql_postgresql/all.mk new file mode 100644 index 0000000..efd20d9 --- /dev/null +++ b/src/tests/modules/sql_postgresql/all.mk @@ -0,0 +1,6 @@ +# +# Test the postgresql module +# + +# Don't test sql_postgresql if TEST_SERVER ENV is not set +sql_postgresql_require_test_server := 1 diff --git a/src/tests/modules/sql_postgresql/auth.attrs b/src/tests/modules/sql_postgresql/auth.attrs new file mode 120000 index 0000000..6b30b6b --- /dev/null +++ b/src/tests/modules/sql_postgresql/auth.attrs @@ -0,0 +1 @@ +../sql/auth.attrs
\ No newline at end of file diff --git a/src/tests/modules/sql_postgresql/auth.unlang b/src/tests/modules/sql_postgresql/auth.unlang new file mode 120000 index 0000000..3ccd80e --- /dev/null +++ b/src/tests/modules/sql_postgresql/auth.unlang @@ -0,0 +1 @@ +../sql/auth.unlang
\ No newline at end of file diff --git a/src/tests/modules/sql_postgresql/module.conf b/src/tests/modules/sql_postgresql/module.conf new file mode 100644 index 0000000..ee9a8a9 --- /dev/null +++ b/src/tests/modules/sql_postgresql/module.conf @@ -0,0 +1,52 @@ +sql { + driver = "rlm_sql_postgresql" + dialect = "postgresql" + + # Connection info: + # + server = $ENV{SQL_POSTGRESQL_TEST_SERVER} + port = 5432 + login = "radius" + password = "radpass" + + # Database table configuration for everything except Oracle + radius_db = "radius" + + acct_table1 = "radacct" + acct_table2 = "radacct" + postauth_table = "radpostauth" + authcheck_table = "radcheck" + groupcheck_table = "radgroupcheck" + authreply_table = "radreply" + groupreply_table = "radgroupreply" + usergroup_table = "radusergroup" + read_groups = yes + read_profiles = yes + + # Remove stale session if checkrad does not see a double login + delete_stale_sessions = yes + + pool { + start = 1 + min = 0 + max = 1 + spare = 3 + uses = 2 + lifetime = 1 + idle_timeout = 60 + retry_delay = 1 + } + + # Set to 'yes' to read radius clients from the database ('nas' table) + # Clients will ONLY be read on server startup. +# read_clients = yes + + # Table to keep radius client info + client_table = "nas" + + # The group attribute specific to this instance of rlm_sql + group_attribute = "SQL-Group" + + # Read database-specific queries + $INCLUDE ${modconfdir}/${.:name}/main/${dialect}/queries.conf +} diff --git a/src/tests/modules/sql_postgresql/reject.attrs b/src/tests/modules/sql_postgresql/reject.attrs new file mode 120000 index 0000000..71a187f --- /dev/null +++ b/src/tests/modules/sql_postgresql/reject.attrs @@ -0,0 +1 @@ +../sql/reject.attrs
\ No newline at end of file diff --git a/src/tests/modules/sql_postgresql/reject.unlang b/src/tests/modules/sql_postgresql/reject.unlang new file mode 120000 index 0000000..379839f --- /dev/null +++ b/src/tests/modules/sql_postgresql/reject.unlang @@ -0,0 +1 @@ +../sql/reject.unlang
\ No newline at end of file diff --git a/src/tests/modules/sql_sqlite/.gitignore b/src/tests/modules/sql_sqlite/.gitignore new file mode 100644 index 0000000..405551a --- /dev/null +++ b/src/tests/modules/sql_sqlite/.gitignore @@ -0,0 +1 @@ +rlm_sql_sqlite.db diff --git a/src/tests/modules/sql_sqlite/acct_0_start.attrs b/src/tests/modules/sql_sqlite/acct_0_start.attrs new file mode 120000 index 0000000..24e17ae --- /dev/null +++ b/src/tests/modules/sql_sqlite/acct_0_start.attrs @@ -0,0 +1 @@ +../sql/acct_0_start.attrs
\ No newline at end of file diff --git a/src/tests/modules/sql_sqlite/acct_0_start.unlang b/src/tests/modules/sql_sqlite/acct_0_start.unlang new file mode 120000 index 0000000..3fe3e99 --- /dev/null +++ b/src/tests/modules/sql_sqlite/acct_0_start.unlang @@ -0,0 +1 @@ +../sql/acct_0_start.unlang
\ No newline at end of file diff --git a/src/tests/modules/sql_sqlite/acct_1_update.attrs b/src/tests/modules/sql_sqlite/acct_1_update.attrs new file mode 120000 index 0000000..1ab772d --- /dev/null +++ b/src/tests/modules/sql_sqlite/acct_1_update.attrs @@ -0,0 +1 @@ +../sql/acct_1_update.attrs
\ No newline at end of file diff --git a/src/tests/modules/sql_sqlite/acct_1_update.unlang b/src/tests/modules/sql_sqlite/acct_1_update.unlang new file mode 120000 index 0000000..b69ff9b --- /dev/null +++ b/src/tests/modules/sql_sqlite/acct_1_update.unlang @@ -0,0 +1 @@ +../sql/acct_1_update.unlang
\ No newline at end of file diff --git a/src/tests/modules/sql_sqlite/acct_2_stop.attrs b/src/tests/modules/sql_sqlite/acct_2_stop.attrs new file mode 120000 index 0000000..ea73931 --- /dev/null +++ b/src/tests/modules/sql_sqlite/acct_2_stop.attrs @@ -0,0 +1 @@ +../sql/acct_2_stop.attrs
\ No newline at end of file diff --git a/src/tests/modules/sql_sqlite/acct_2_stop.unlang b/src/tests/modules/sql_sqlite/acct_2_stop.unlang new file mode 120000 index 0000000..ea0be56 --- /dev/null +++ b/src/tests/modules/sql_sqlite/acct_2_stop.unlang @@ -0,0 +1 @@ +../sql/acct_2_stop.unlang
\ No newline at end of file diff --git a/src/tests/modules/sql_sqlite/acct_start_conflict.attrs b/src/tests/modules/sql_sqlite/acct_start_conflict.attrs new file mode 120000 index 0000000..117a505 --- /dev/null +++ b/src/tests/modules/sql_sqlite/acct_start_conflict.attrs @@ -0,0 +1 @@ +../sql/acct_start_conflict.attrs
\ No newline at end of file diff --git a/src/tests/modules/sql_sqlite/acct_start_conflict.unlang b/src/tests/modules/sql_sqlite/acct_start_conflict.unlang new file mode 120000 index 0000000..da35798 --- /dev/null +++ b/src/tests/modules/sql_sqlite/acct_start_conflict.unlang @@ -0,0 +1 @@ +../sql/acct_start_conflict.unlang
\ No newline at end of file diff --git a/src/tests/modules/sql_sqlite/acct_update_no_start.attrs b/src/tests/modules/sql_sqlite/acct_update_no_start.attrs new file mode 120000 index 0000000..328867f --- /dev/null +++ b/src/tests/modules/sql_sqlite/acct_update_no_start.attrs @@ -0,0 +1 @@ +../sql/acct_update_no_start.attrs
\ No newline at end of file diff --git a/src/tests/modules/sql_sqlite/acct_update_no_start.unlang b/src/tests/modules/sql_sqlite/acct_update_no_start.unlang new file mode 120000 index 0000000..6837977 --- /dev/null +++ b/src/tests/modules/sql_sqlite/acct_update_no_start.unlang @@ -0,0 +1 @@ +../sql/acct_update_no_start.unlang
\ No newline at end of file diff --git a/src/tests/modules/sql_sqlite/all.mk b/src/tests/modules/sql_sqlite/all.mk new file mode 100644 index 0000000..a7907f1 --- /dev/null +++ b/src/tests/modules/sql_sqlite/all.mk @@ -0,0 +1,3 @@ +# +# Test the sqlite module +# diff --git a/src/tests/modules/sql_sqlite/auth.attrs b/src/tests/modules/sql_sqlite/auth.attrs new file mode 120000 index 0000000..6b30b6b --- /dev/null +++ b/src/tests/modules/sql_sqlite/auth.attrs @@ -0,0 +1 @@ +../sql/auth.attrs
\ No newline at end of file diff --git a/src/tests/modules/sql_sqlite/auth.unlang b/src/tests/modules/sql_sqlite/auth.unlang new file mode 120000 index 0000000..3ccd80e --- /dev/null +++ b/src/tests/modules/sql_sqlite/auth.unlang @@ -0,0 +1 @@ +../sql/auth.unlang
\ No newline at end of file diff --git a/src/tests/modules/sql_sqlite/module.conf b/src/tests/modules/sql_sqlite/module.conf new file mode 100644 index 0000000..1d8ac74 --- /dev/null +++ b/src/tests/modules/sql_sqlite/module.conf @@ -0,0 +1,52 @@ +sql { + driver = "rlm_sql_sqlite" + dialect = "sqlite" + sqlite { + # Path to the sqlite database + filename = "$ENV{MODULE_TEST_DIR}/sql_sqlite/rlm_sql_sqlite.db" + + # If the file above does not exist and bootstrap is set + # a new database file will be created, and the SQL statements + # contained within the file will be executed. + bootstrap = "${modconfdir}/${..:name}/main/${..dialect}/schema.sql" + } + radius_db = "radius" + + acct_table1 = "radacct" + acct_table2 = "radacct" + postauth_table = "radpostauth" + authcheck_table = "radcheck" + groupcheck_table = "radgroupcheck" + authreply_table = "radreply" + groupreply_table = "radgroupreply" + usergroup_table = "radusergroup" + read_groups = yes + read_profiles = yes + + # Remove stale session if checkrad does not see a double login + delete_stale_sessions = yes + + pool { + start = 1 + min = 0 + max = 1 + spare = 3 + uses = 2 + lifetime = 1 + idle_timeout = 60 + retry_delay = 1 + } + + # Set to 'yes' to read radius clients from the database ('nas' table) + # Clients will ONLY be read on server startup. +# read_clients = yes + + # Table to keep radius client info + client_table = "nas" + + # The group attribute specific to this instance of rlm_sql + group_attribute = "SQL-Group" + + # Read database-specific queries + $INCLUDE ${modconfdir}/${.:name}/main/${dialect}/queries.conf +} diff --git a/src/tests/modules/sql_sqlite/reject.attrs b/src/tests/modules/sql_sqlite/reject.attrs new file mode 120000 index 0000000..71a187f --- /dev/null +++ b/src/tests/modules/sql_sqlite/reject.attrs @@ -0,0 +1 @@ +../sql/reject.attrs
\ No newline at end of file diff --git a/src/tests/modules/sql_sqlite/reject.unlang b/src/tests/modules/sql_sqlite/reject.unlang new file mode 120000 index 0000000..379839f --- /dev/null +++ b/src/tests/modules/sql_sqlite/reject.unlang @@ -0,0 +1 @@ +../sql/reject.unlang
\ No newline at end of file |