]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Add tests of compound keys in rlm_cache
authorNick Porter <nick@portercomputing.co.uk>
Wed, 12 Nov 2025 14:07:49 +0000 (14:07 +0000)
committerNick Porter <nick@portercomputing.co.uk>
Thu, 13 Nov 2025 08:32:41 +0000 (08:32 +0000)
12 files changed:
src/tests/modules/cache_htrie/cache-compound.attrs [new symlink]
src/tests/modules/cache_htrie/cache-compound.unlang [new symlink]
src/tests/modules/cache_htrie/module.conf
src/tests/modules/cache_memcached/cache-compound.attrs [new symlink]
src/tests/modules/cache_memcached/cache-compound.unlang [new symlink]
src/tests/modules/cache_memcached/module.conf
src/tests/modules/cache_rbtree/cache-compound.attrs [new file with mode: 0644]
src/tests/modules/cache_rbtree/cache-compound.unlang [new file with mode: 0644]
src/tests/modules/cache_rbtree/module.conf
src/tests/modules/cache_redis/cache-compound.attrs [new symlink]
src/tests/modules/cache_redis/cache-compound.unlang [new symlink]
src/tests/modules/cache_redis/module.conf

diff --git a/src/tests/modules/cache_htrie/cache-compound.attrs b/src/tests/modules/cache_htrie/cache-compound.attrs
new file mode 120000 (symlink)
index 0000000..c56044f
--- /dev/null
@@ -0,0 +1 @@
+../cache_rbtree/cache-compound.attrs
\ No newline at end of file
diff --git a/src/tests/modules/cache_htrie/cache-compound.unlang b/src/tests/modules/cache_htrie/cache-compound.unlang
new file mode 120000 (symlink)
index 0000000..be5090c
--- /dev/null
@@ -0,0 +1 @@
+../cache_rbtree/cache-compound.unlang
\ No newline at end of file
index 646349afb1b4e6f005c8dcbe083507ba087ca8d4..2ba274ab37e7a9d3a6fca7519c69ad801138eacd 100644 (file)
@@ -116,3 +116,13 @@ cache static_key {
                Callback-Id := Callback-Id[0]
        }
 }
+
+cache compound_key {
+       driver = "htrie"
+       key = "%{Framed-IP-Address} %{User-Name}"
+       ttl = 5
+
+       update {
+               Callback-Id := control.Callback-Id[0]
+       }
+}
diff --git a/src/tests/modules/cache_memcached/cache-compound.attrs b/src/tests/modules/cache_memcached/cache-compound.attrs
new file mode 120000 (symlink)
index 0000000..c56044f
--- /dev/null
@@ -0,0 +1 @@
+../cache_rbtree/cache-compound.attrs
\ No newline at end of file
diff --git a/src/tests/modules/cache_memcached/cache-compound.unlang b/src/tests/modules/cache_memcached/cache-compound.unlang
new file mode 120000 (symlink)
index 0000000..be5090c
--- /dev/null
@@ -0,0 +1 @@
+../cache_rbtree/cache-compound.unlang
\ No newline at end of file
index c910ae972c34137f8b5b55ed91170dc073d9131d..8a03d39c8bdd617e81597f8b681a1608eeea6d97 100644 (file)
@@ -120,3 +120,13 @@ cache static_key {
                Callback-Id := Callback-Id[0]
        }
 }
+
+cache compound_key {
+       driver = "memcached"
+       key = "%{Framed-IP-Address}%{User-Name}"
+       ttl = 5
+
+       update {
+               Callback-Id := control.Callback-Id[0]
+       }
+}
diff --git a/src/tests/modules/cache_rbtree/cache-compound.attrs b/src/tests/modules/cache_rbtree/cache-compound.attrs
new file mode 100644 (file)
index 0000000..2c3f3ac
--- /dev/null
@@ -0,0 +1,11 @@
+#
+#  Input packet
+#
+Packet-Type = Access-Request
+User-Name = "bob"
+User-Password = "olobobob"
+
+#
+#  Expected answer
+#
+Packet-Type == Access-Accept
diff --git a/src/tests/modules/cache_rbtree/cache-compound.unlang b/src/tests/modules/cache_rbtree/cache-compound.unlang
new file mode 100644 (file)
index 0000000..b7c8626
--- /dev/null
@@ -0,0 +1,33 @@
+#
+#  PRE: cache-logic
+#
+
+#
+#  Basic update and retrieve
+#
+control.Callback-Id := 'cache me'
+Framed-IP-Address := 1.2.3.4
+
+compound_key.store
+if (!updated) {
+       test_fail
+}
+
+# Merge
+compound_key.load
+if (!updated) {
+       test_fail
+}
+
+if (Callback-Id != 'cache me') {
+       test_fail
+}
+
+Framed-IP-Address := 2.3.4.5
+
+compound_key.load
+if (!notfound) {
+       test_fail
+}
+
+test_pass
index 32242edbf5517b94cb33a971d6a0b3d690e397be..1b0974710c624d206bced6300685da0e7b882ec9 100644 (file)
@@ -106,3 +106,13 @@ cache static_key {
                Callback-Id := Callback-Id[0]
        }
 }
+
+cache compound_key {
+       driver = "rbtree"
+       key = "%{Framed-IP-Address} %{User-Name}"
+       ttl = 5
+
+       update {
+               Callback-Id := control.Callback-Id[0]
+       }
+}
diff --git a/src/tests/modules/cache_redis/cache-compound.attrs b/src/tests/modules/cache_redis/cache-compound.attrs
new file mode 120000 (symlink)
index 0000000..c56044f
--- /dev/null
@@ -0,0 +1 @@
+../cache_rbtree/cache-compound.attrs
\ No newline at end of file
diff --git a/src/tests/modules/cache_redis/cache-compound.unlang b/src/tests/modules/cache_redis/cache-compound.unlang
new file mode 120000 (symlink)
index 0000000..be5090c
--- /dev/null
@@ -0,0 +1 @@
+../cache_rbtree/cache-compound.unlang
\ No newline at end of file
index 7e1c58dc58b1e8a30e0a89a206f4a13a719218ce..aac76f820d98f9f3d37bd97e983ebdc89ce15ef3 100644 (file)
@@ -149,3 +149,23 @@ cache static_key {
                Callback-Id := Callback-Id[0]
        }
 }
+
+cache compound_key {
+       driver = "redis"
+
+       redis {
+               server = $ENV{CACHE_REDIS_TEST_SERVER}:30001
+               server = $ENV{CACHE_REDIS_TEST_SERVER}:30002
+               server = $ENV{CACHE_REDIS_TEST_SERVER}:30003
+               server = $ENV{CACHE_REDIS_TEST_SERVER}:30004
+               server = $ENV{CACHE_REDIS_TEST_SERVER}:30005
+               server = $ENV{CACHE_REDIS_TEST_SERVER}:30006
+       }
+
+       key = "%{Framed-IP-Address} %{User-Name}"
+       ttl = 5
+
+       update {
+               Callback-Id := control.Callback-Id[0]
+       }
+}