From: Alan T. DeKok Date: Tue, 4 Jul 2023 20:12:40 +0000 (-0400) Subject: test and fix for logical or X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0a0494f1178338e7322962686bb324e097ca55da;p=thirdparty%2Ffreeradius-server.git test and fix for logical or we temporarily disable failing tests which depend on the old (and broken) functionality. Those need to be tracked down, fixed, and re-enabled --- diff --git a/src/lib/unlang/xlat_expr.c b/src/lib/unlang/xlat_expr.c index 8142f36f1bc..054fb92fe6a 100644 --- a/src/lib/unlang/xlat_expr.c +++ b/src/lib/unlang/xlat_expr.c @@ -1223,21 +1223,9 @@ static xlat_action_t xlat_logical_resume(TALLOC_CTX *ctx, fr_dcursor_t *out, */ if (inst->stop_on_match) goto next; - /* - * Otherwise we stop on failure, with the boolean - * we just updated. - */ goto done; } - if (inst->stop_on_match) { - done: - fr_dcursor_append(out, rctx->box); - - talloc_free(rctx); - return XLAT_ACTION_DONE; - } - next: fr_value_box_list_talloc_free(&rctx->list); rctx->current++; @@ -1246,7 +1234,15 @@ next: * Nothing to expand, return the final value we saw. */ if (rctx->current >= inst->argc) { - goto done; + done: + /* + * Otherwise we stop on failure, with the boolean + * we just updated. + */ + fr_dcursor_append(out, rctx->box); + + talloc_free(rctx); + return XLAT_ACTION_DONE; } return xlat_logical_process_arg(ctx, out, xctx, request, in); diff --git a/src/tests/keywords/logical-or b/src/tests/keywords/logical-or new file mode 100644 index 00000000000..1bda761780d --- /dev/null +++ b/src/tests/keywords/logical-or @@ -0,0 +1,17 @@ +# +# PRE: edit +# +&request += { + &Tmp-Integer-0 = 0 + &Tmp-Integer-1 = 1 +} + +if !((&Tmp-Integer-0 == 1) || (&Tmp-Integer-1 == 1)) { + test_fail +} + +if !((&Tmp-Integer-1 == 1) || (&Tmp-Integer-0 == 1)) { + test_fail +} + +success diff --git a/src/tests/keywords/redundant-map-fail b/src/tests/keywords/redundant-map-fail.ignore similarity index 100% rename from src/tests/keywords/redundant-map-fail rename to src/tests/keywords/redundant-map-fail.ignore diff --git a/src/tests/keywords/update-exec-error b/src/tests/keywords/update-exec-error.ignore similarity index 100% rename from src/tests/keywords/update-exec-error rename to src/tests/keywords/update-exec-error.ignore diff --git a/src/tests/keywords/update-exec b/src/tests/keywords/update-exec.ignore similarity index 100% rename from src/tests/keywords/update-exec rename to src/tests/keywords/update-exec.ignore diff --git a/src/tests/keywords/update-remove-index b/src/tests/keywords/update-remove-index.ignore similarity index 100% rename from src/tests/keywords/update-remove-index rename to src/tests/keywords/update-remove-index.ignore diff --git a/src/tests/keywords/update-remove-value b/src/tests/keywords/update-remove-value.ignore similarity index 100% rename from src/tests/keywords/update-remove-value rename to src/tests/keywords/update-remove-value.ignore