diff options
Diffstat (limited to 'src/tests/keywords/xlat-attr-index')
-rw-r--r-- | src/tests/keywords/xlat-attr-index | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/tests/keywords/xlat-attr-index b/src/tests/keywords/xlat-attr-index new file mode 100644 index 0000000..c967dd6 --- /dev/null +++ b/src/tests/keywords/xlat-attr-index @@ -0,0 +1,53 @@ +# +# PRE: update +# +# Remove all attributes in a list +# +update { + control:Cleartext-Password := 'hello' + reply:Filter-Id := 'filter' +} + +update request { + Tmp-IP-Address-0 := 192.0.2.1 + Tmp-IP-Address-0 += 192.0.2.2 +} + +if ("%{Tmp-IP-Address-0[#]}" != 2) { + update { + reply:Filter-Id += 'fail 0' + } +} + +if (("%{Tmp-IP-Address-0[0]}" != 192.0.2.1) || ("%{Tmp-IP-Address-0[1]}" != 192.0.2.2)) { + update { + reply:Filter-Id += 'fail 1' + } +} + +if ("%{Tmp-IP-Address-0[*]}" != '192.0.2.1,192.0.2.2') { + update { + reply:Filter-Id += 'fail 2' + } +} + +# Try calling these xlats in mapping too, they may get optimised to VPTs which is a +# different code path. +update request { + Tmp-IP-Address-1 += "%{Tmp-IP-Address-0[1]}" + Tmp-IP-Address-1 += "%{Tmp-IP-Address-0[0]}" + Tmp-String-0 = "%{Tmp-IP-Address-0[*]}" + Tmp-Integer-0 = "%{Tmp-IP-Address-0[#]}" +} + +if (Tmp-String-0 != '192.0.2.1,192.0.2.2') { + update { + reply:Filter-Id += 'fail 3' + } +} + +if (Tmp-Integer-0 != 2) { + update { + reply:Filter-Id += 'fail 4' + } +} |