diff options
Diffstat (limited to 'src/tests/keywords/load-balance')
-rw-r--r-- | src/tests/keywords/load-balance | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/src/tests/keywords/load-balance b/src/tests/keywords/load-balance new file mode 100644 index 0000000..d07939a --- /dev/null +++ b/src/tests/keywords/load-balance @@ -0,0 +1,97 @@ +# PRE: update if foreach +# +# Load-Balance blocks. +# +# Should distribute load between the modules. +# +update request { + Tmp-Integer-0 := 0 + Tmp-Integer-1 := 0 + + Tmp-Integer-2 += 0 # 0 + Tmp-Integer-2 += 1 + Tmp-Integer-2 += 2 + Tmp-Integer-2 += 3 + Tmp-Integer-2 += 4 + Tmp-Integer-2 += 5 + Tmp-Integer-2 += 6 + Tmp-Integer-2 += 7 + Tmp-Integer-2 += 8 + Tmp-Integer-2 += 9 # 10 + Tmp-Integer-2 += 0 + Tmp-Integer-2 += 1 + Tmp-Integer-2 += 2 + Tmp-Integer-2 += 3 + Tmp-Integer-2 += 4 + Tmp-Integer-2 += 5 + Tmp-Integer-2 += 6 + Tmp-Integer-2 += 7 + Tmp-Integer-2 += 8 + Tmp-Integer-2 += 9 # 20 + Tmp-Integer-2 += 0 + Tmp-Integer-2 += 1 + Tmp-Integer-2 += 2 + Tmp-Integer-2 += 3 + Tmp-Integer-2 += 4 + Tmp-Integer-2 += 5 + Tmp-Integer-2 += 6 + Tmp-Integer-2 += 7 + Tmp-Integer-2 += 8 + Tmp-Integer-2 += 9 # 30 + Tmp-Integer-2 += 0 + Tmp-Integer-2 += 1 + Tmp-Integer-2 += 2 + Tmp-Integer-2 += 3 + Tmp-Integer-2 += 4 + Tmp-Integer-2 += 5 + Tmp-Integer-2 += 6 + Tmp-Integer-2 += 7 + Tmp-Integer-2 += 8 + Tmp-Integer-2 += 9 # 40 + Tmp-Integer-2 += 0 + Tmp-Integer-2 += 1 + Tmp-Integer-2 += 2 + Tmp-Integer-2 += 3 + Tmp-Integer-2 += 4 + Tmp-Integer-2 += 5 + Tmp-Integer-2 += 6 + Tmp-Integer-2 += 7 + Tmp-Integer-2 += 8 + Tmp-Integer-2 += 9 # 49 +} + +# +# Loop 0..9 +# +foreach &Tmp-Integer-2 { + load-balance { + group { + update request { + Tmp-Integer-0 := "%{expr:%{Tmp-Integer-0} + 1}" + Filter-Id += "PICKED GROUP 1 %{Tmp-Integer-0} TIME(S)" + } + ok + } + group { + update request { + Tmp-Integer-1 := "%{expr:%{Tmp-Integer-1} + 1}" + Filter-Id += "PICKED GROUP 2 %{Tmp-Integer-1} TIME(S)" + } + ok + } + } +} + +# The chances of one group being used over another 50 times by random occurrence +# is quite small, and if this happens repeatedly, it's likely there's a bug in +# the load-balance code or random number generator. +if ((&Tmp-Integer-0 == 0) || (&Tmp-Integer-1 == 0)) { + update reply { + Filter-Id += "fail 1 %{Tmp-Integer-0}/%{Tmp-Integer-1})" + } +} +else { + update reply { + Filter-Id := 'filter' + } +} |