Re: [PATCH] t-strvec: use test_msg()
On Thu, Jul 4, 2024 at 2:04 PM René Scharfe <l.s.r@web.de> wrote:
> check_strvec_loc() checks each the strvec item by looping through them
Show 5 quoted lines
> and comparing them with expected values. If a check fails then we'd
> like to know which item is affected. It reports that information by
> building a strbuf and delivering its contents using a failing assertion.
>
> Here's an example in which there are less items in the strvec than
Show 30 quoted lines
> expected; the index of the missing item is reported in the last line:
>
> # check "vec->nr > nr" failed at t/unit-tests/t-strvec.c:19
> # left: 1
> # right: 1
> # check "strvec index 1" failed at t/unit-tests/t-strvec.c:71
>
> Note that it is also reported in the third line, i.e. the variable
> "nr" contains that index.
>
> Stop printing the index explicitly for checks that already report it.
> The message for the same condition as above becomes:
>
> # check "vec->nr > nr" failed at t/unit-tests/t-strvec.c:19
> # left: 1
> # right: 1
>
> For the string comparison, whose error message doesn't include the
> index, report it using the simpler and more appropriate test_msg()
> instead. Report the index using its actual name and format the line
> like the preceding ones. The message for an unexpected string value
> becomes:
>
> # check "!strcmp(vec->v[nr], str)" failed at t/unit-tests/t-strvec.c:24
> # left: "foo"
> # right: "bar"
> # nr: 0
>
> Reported-by: Phillip Wood <phillip.wood@dunelm.org.uk>
> ---