--- /dev/null
+# Used by cache-logic
+cache {
+ driver = "memcached"
+
+ memcached {
+ options = "--SERVER=$ENV{CACHE_MEMCACHED_TEST_SERVER}"
+ }
+
+ key = "$ENV{MODULE_TEST_UNLANG}%{Filter-Id}"
+ ttl = 5
+
+ update {
+ &Callback-Id := &control.Callback-Id[0]
+ &NAS-Port := &control.NAS-Port[0]
+ &control += &reply
+ }
+
+ add_stats = yes
+}
+
+cache cache_update {
+ driver = "memcached"
+
+ memcached {
+ options = "--SERVER=$ENV{CACHE_MEMCACHED_TEST_SERVER}"
+ }
+
+ key = "$ENV{MODULE_TEST_UNLANG}%{Filter-Id}"
+ ttl = 5
+
+ #
+ # Update sections in the cache module use very similar
+ # logic to update sections in unlang, except the result
+ # of evaluating the RHS isn't applied until the cache
+ # entry is merged.
+ #
+ update {
+ # Copy reply to session-state
+ &session-state += &reply
+
+ # Implicit cast between types (and multivalue copy)
+ &Filter-Id += &NAS-Port[*]
+
+ # Cache the result of an exec
+ &Callback-Id := `/bin/echo 'echo test'`
+
+ # Create three string values and overwrite the middle one
+ &Login-LAT-Service += 'foo'
+ &Login-LAT-Service += 'bar'
+ &Login-LAT-Service += 'baz'
+
+ &Login-LAT-Service[1] := 'rab'
+
+ # Create three string values, then remove one
+ &Login-LAT-Node += 'foo'
+ &Login-LAT-Node += 'bar'
+ &Login-LAT-Node += 'baz'
+
+ &Login-LAT-Node -= 'bar'
+ }
+}
+
+#
+# Test some exotic keys
+#
+# Not on memcached yet - it has limitations in the character set for the key
+#cache cache_bin_key_octets {
+# driver = "memcached"
+
+# memcached {
+# options = "--SERVER=$ENV{CACHE_MEMCACHED_TEST_SERVER}"
+# }
+
+# key = &Class
+# ttl = 5
+
+# update {
+# &Callback-Id := &Callback-Id[0]
+# }
+#}
+
+#cache cache_bin_key_ipaddr {
+# driver = "memcached"
+
+# memcached {
+# options = "--SERVER=$ENV{CACHE_MEMCACHED_TEST_SERVER}"
+# }
+
+# key = &Framed-IP-Address
+# ttl = 5
+
+# update {
+# &Callback-Id := &Callback-Id[0]
+# }
+#}
+
+cache cache_empty_update {
+ driver = "memcached"
+
+ memcached {
+ options = "--SERVER=$ENV{CACHE_MEMCACHED_TEST_SERVER}"
+ }
+
+ key = "%{Filter-Id}"
+ ttl = 5
+}
+
+# Regression test for literal data
+cache static_key {
+ driver = "memcached"
+
+ memcached {
+ options = "--SERVER=$ENV{CACHE_MEMCACHED_TEST_SERVER}"
+ }
+
+ key = "I-Am-A-Static-Key"
+ ttl = 5
+
+ update {
+ &Callback-Id := &Callback-Id[0]
+ }
+}