On Thu, Jul 4, 2024 at 2:04 PM René Scharfe <l.s.r@xxxxxx> wrote: > check_strvec_loc() checks each the strvec item by looping through them s/each the/each/ > 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 s/less/fewer/ > 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@xxxxxxxxxxxxx> > --- Missing sign-off.