Hi Rasmus,

On Tue, 17 Mar 2026 at 09:12, Rasmus Villemoes <[email protected]> wrote:
>
> On Tue, Mar 17 2026, Simon Glass <[email protected]> wrote:
>
> > Hi Rasmus,
> >
> > On Mon, 16 Mar 2026 at 02:17, Rasmus Villemoes <[email protected]> wrote:
> >>
> >> On Sun, Mar 15 2026, Simon Glass <[email protected]> wrote:
> >>
> >> > Hi Rasmus,
> >> >
> >> > On Wed, 11 Mar 2026 at 06:09, Rasmus Villemoes <[email protected]> wrote:
> >> >>
> >> >> Duplicate a few of the existing test cases, using the [ spelling, and
> >> >> also ensure that the presence of a matching ] as a separate and last
> >> >> argument is enforced.
> >> >>
> >> >> Signed-off-by: Rasmus Villemoes <[email protected]>
> >> >> ---
> >> >>  test/hush/if.c | 31 +++++++++++++++++++++++++++++++
> >> >>  1 file changed, 31 insertions(+)
> >> >>
> >> >> diff --git a/test/hush/if.c b/test/hush/if.c
> >> >> index ea615b246a9..148e9a53e90 100644
> >> >> --- a/test/hush/if.c
> >> >> +++ b/test/hush/if.c
> >> >> @@ -315,3 +315,34 @@ static int hush_test_if_z_operator(struct 
> >> >> unit_test_state *uts)
> >> >>         return 0;
> >> >>  }
> >> >>  HUSH_TEST(hush_test_if_z_operator, 0);
> >> >> +
> >> >> +static int hush_test_lbracket_alias(struct unit_test_state *uts)
> >> >> +{
> >> >> +       char if_formatted[128];
> >> >> +       const char *missing_rbracket_error = "[: missing terminating ]";
> >> >> +
> >> >> +       sprintf(if_formatted, if_format, "[ aaa = aaa ]");
> >> >> +       ut_assertok(run_command(if_formatted, 0));
> >> >
> >> > How about using run_commandf() so you can do this in one line? Looks
> >> > good apart from that.
> >> >
> >>
> >> I did cringe a little when I saw that repeated sprintf()/run_command()
> >> pattern all over that file, but I preferred to stay consistent with the
> >> existing style.
> >>
> >> If anything, one should do a whole-sale conversion of that file, but
> >> then I'd not use run_commandf() directly, as one would still pass in
> >> that if_format argument every time, so rather create a local macro that
> >> wraps run_commandf() and provides that if_format as a literal string,
> >> which would also enable format checking.
> >
> > Well you could have a helper function which takes the string argument
> > and does the assert. The duplication makes it a bit harder to
> > maintain.
> >
> > sprintf(if_formatted, if_format, "test aaa != aaa");
> > ut_asserteq(1, run_command(if_formatted, 0));
> >
> > could be something like:
> >
> > ut_asserteq(1, check_operation("test aaa != aaa"));
>
> Yes, I'd definitely make sure that each test would only occupy one
> source line instead of two. What I meant was that I didn't want to
> convert
>
>     sprintf(if_formatted, if_format, "test aaa = aaa");
>     ut_assertok(run_command(if_formatted, 0));
>
> mechanically into
>
>    ut_assertok(run_commandf(if_format, "test aaa = aaa", 0));
>
> and having to repeat that if_format thing on each and every line.
>
> Also, I think I would prefer to change the assertok()s into asserteq(0,
> ... ) as I think the mix of assertok() and asserteq(1, ...) is not very
> readable.
>
> > If you had the energy to adjust the rest of the file, that seems good too.
>
> I will fix that in a followup if the current patches get merged (they're
> at v2 by the way), I do not have the energy to start over and doing the
> mechanical changes first and then redo my patches on top of that, so
> please don't request that I do that.

That's fine with me, please do. Yes I think I missed v1.

Reviewed-by: Simon Glass <[email protected]>

Regards,
Simon

Reply via email to