]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
add retry tests
authorAlan T. DeKok <aland@freeradius.org>
Tue, 31 Aug 2021 22:00:54 +0000 (18:00 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Tue, 31 Aug 2021 22:00:54 +0000 (18:00 -0400)
src/modules/rlm_test/rlm_test.c
src/tests/keywords/retry-module [new file with mode: 0644]
src/tests/keywords/retry-section [new file with mode: 0644]
src/tests/keywords/retry-test [new file with mode: 0644]

index 7b6cc8106e7c3b7ec4bdbf81f21378a91e39fc8b..cf66d743f86259789868194b43dc38d98639ea83 100644 (file)
@@ -434,7 +434,7 @@ extern module_t rlm_test;
 module_t rlm_test = {
        .magic                  = RLM_MODULE_INIT,
        .name                   = "test",
-       .type                   = RLM_TYPE_THREAD_SAFE,
+       .type                   = RLM_TYPE_THREAD_SAFE | RLM_TYPE_RETRY,
        .inst_size              = sizeof(rlm_test_t),
        .thread_inst_size       = sizeof(rlm_test_thread_t),
        .config                 = module_config,
diff --git a/src/tests/keywords/retry-module b/src/tests/keywords/retry-module
new file mode 100644 (file)
index 0000000..7a7ef1d
--- /dev/null
@@ -0,0 +1,15 @@
+#
+#  PRE: retry-section
+#
+
+#
+#  We can't really check anything here, but this should at least parse and work.
+#
+noop {
+       noop = retry
+       retry {
+               max_rtx_count = 2
+       }
+}
+
+success
diff --git a/src/tests/keywords/retry-section b/src/tests/keywords/retry-section
new file mode 100644 (file)
index 0000000..be7e8af
--- /dev/null
@@ -0,0 +1,26 @@
+# PRE: update if
+
+update request {
+       &Tmp-Integer-0 := 0
+}
+
+group {
+       update request {
+               &Tmp-Integer-0 := "%{expr: &Tmp-Integer-0 + 1}"
+       }
+
+       noop
+       actions {
+               noop = retry
+
+               retry {
+                       max_rtx_count = 3
+               }
+       }
+}
+
+if (&Tmp-Integer-0 != 3) {
+       test_fail
+}
+
+success
diff --git a/src/tests/keywords/retry-test b/src/tests/keywords/retry-test
new file mode 100644 (file)
index 0000000..39563ee
--- /dev/null
@@ -0,0 +1,18 @@
+#
+#  PRE: retry-module test
+#
+
+#
+#  Run the "test" module, using its native retry functionality
+#
+
+test.retry {
+       retry {
+               initial_rtx_time = 1
+               max_rtx_duration = 3
+               max_rtx_count = 2
+               max_rtx_duration = 5
+       }
+}
+
+success