diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 09:49:46 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 09:49:46 +0000 |
commit | 50b37d4a27d3295a29afca2286f1a5a086142cec (patch) | |
tree | 9212f763934ee090ef72d823f559f52ce387f268 /src/tests/keywords/redundant | |
parent | Initial commit. (diff) | |
download | freeradius-upstream.tar.xz freeradius-upstream.zip |
Adding upstream version 3.2.1+dfsg.upstream/3.2.1+dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | src/tests/keywords/redundant | 17 | ||||
-rw-r--r-- | src/tests/keywords/redundant-error | 6 | ||||
-rw-r--r-- | src/tests/keywords/redundant-load-balance | 65 | ||||
-rw-r--r-- | src/tests/keywords/redundant-redundant | 73 |
4 files changed, 161 insertions, 0 deletions
diff --git a/src/tests/keywords/redundant b/src/tests/keywords/redundant new file mode 100644 index 0000000..cebe7be --- /dev/null +++ b/src/tests/keywords/redundant @@ -0,0 +1,17 @@ +# PRE: update if foreach +# +# Redundant blocks. +# +# The first one fails, so the second one is used +# +redundant { + group { + fail + } + + group { + update reply { + Filter-Id := "filter" + } + } +} diff --git a/src/tests/keywords/redundant-error b/src/tests/keywords/redundant-error new file mode 100644 index 0000000..bec4335 --- /dev/null +++ b/src/tests/keywords/redundant-error @@ -0,0 +1,6 @@ +# +# Check that redundant blocks can't be empty +# +redundant { # ERROR + +} diff --git a/src/tests/keywords/redundant-load-balance b/src/tests/keywords/redundant-load-balance new file mode 100644 index 0000000..27721f1 --- /dev/null +++ b/src/tests/keywords/redundant-load-balance @@ -0,0 +1,65 @@ +# PRE: update if foreach +# +# Redundant blocks. +# +# The first one fails, so the second one is used +# +update request { + Tmp-Integer-0 := 0 + Tmp-Integer-1 += 0 + Tmp-Integer-1 += 1 + Tmp-Integer-1 += 2 + Tmp-Integer-1 += 3 + Tmp-Integer-1 += 4 + Tmp-Integer-1 += 5 + Tmp-Integer-1 += 6 + Tmp-Integer-1 += 7 + Tmp-Integer-1 += 8 + Tmp-Integer-1 += 9 + +} + +# +# Loop 0..9 +# +foreach &Tmp-Integer-1 { + redundant-load-balance { + group { + # fail on even numbered values, succeed on odd numbered ones + if ("%{expr:%{Foreach-Variable-0} %% 2}" == 0) { + fail + } + else { + update request { + Tmp-Integer-0 := "%{expr:%{Tmp-Integer-0} + 1}" + Filter-Id += "SUCCEED ODD %{Foreach-Variable-0} %{Tmp-Integer-0}" + } + ok + } + } + group { + # succeed on even-numbered values, fail on off-numbered ones. + if ("%{expr:%{Foreach-Variable-0} %% 2}" == 1) { + fail + } + else { + update request { + Tmp-Integer-0 := "%{expr:%{Tmp-Integer-0} + 1}" + Filter-Id += "SUCCEED EVEN %{Foreach-Variable-0} %{Tmp-Integer-0}" + } + ok + } + } + } +} + +if (&Tmp-Integer-0 != "%{Tmp-Integer-1[#]}") { + update reply { + Filter-Id += "fail 2 (passed %{Tmp-Integer-0}/%{Tmp-Integer-1[#]})" + } +} +else { + update reply { + Filter-Id := 'filter' + } +} diff --git a/src/tests/keywords/redundant-redundant b/src/tests/keywords/redundant-redundant new file mode 100644 index 0000000..294f53e --- /dev/null +++ b/src/tests/keywords/redundant-redundant @@ -0,0 +1,73 @@ +# PRE: update if foreach redundant redundant-load-balance +# +# Nested redundant blocks. +# +# +update request { + Tmp-Integer-2 := 0 + Tmp-Integer-3 := 0 + Tmp-Integer-4 := 0 + Tmp-Integer-5 := 0 +} + +redundant { + redundant-load-balance { + group { + update request { + Tmp-Integer-2 := "%{expr:&Tmp-Integer-2 + 1}" + } + fail + } + group { + update request { + Tmp-Integer-3 := "%{expr:&Tmp-Integer-3 + 1}" + } + fail + } + group { + update request { + Tmp-Integer-4 := "%{expr:&Tmp-Integer-4 + 1}" + } + fail + } + group { + update request { + Tmp-Integer-5 := "%{expr:&Tmp-Integer-5 + 1}" + } + fail + } + } + ok +} + +if (&Tmp-Integer-2 != 1) { + update reply { + Filter-Id += 'Fail 3a' + } + return +} + +if (&Tmp-Integer-3 != 1) { + update reply { + Filter-Id += 'Fail 3b' + } + return +} + +if (&Tmp-Integer-4 != 1) { + update reply { + Filter-Id += 'Fail 3c' + } + return +} + +if (&Tmp-Integer-5 != 1) { + update reply { + Filter-Id += 'Fail 3d' + } + return +} + +update reply { + Filter-Id := "filter" +}
\ No newline at end of file |