qemufirmwaretest: Base iteration on string lists

Remove the need to calculate list lengths.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Peter Krempa 2021-02-05 17:34:13 +01:00
parent 81030c44e0
commit 3bfa9fce51

View File

@ -57,16 +57,16 @@ testFWPrecedence(const void *opaque G_GNUC_UNUSED)
{ {
g_autofree char *fakehome = NULL; g_autofree char *fakehome = NULL;
g_auto(GStrv) fwList = NULL; g_auto(GStrv) fwList = NULL;
size_t nfwList;
size_t i;
const char *expected[] = { const char *expected[] = {
PREFIX "/share/qemu/firmware/40-bios.json", PREFIX "/share/qemu/firmware/40-bios.json",
SYSCONFDIR "/qemu/firmware/40-ovmf-sb-keys.json", SYSCONFDIR "/qemu/firmware/40-ovmf-sb-keys.json",
PREFIX "/share/qemu/firmware/50-ovmf-sb-keys.json", PREFIX "/share/qemu/firmware/50-ovmf-sb-keys.json",
PREFIX "/share/qemu/firmware/61-ovmf.json", PREFIX "/share/qemu/firmware/61-ovmf.json",
PREFIX "/share/qemu/firmware/70-aavmf.json", PREFIX "/share/qemu/firmware/70-aavmf.json",
NULL
}; };
const size_t nexpected = G_N_ELEMENTS(expected); const char **e;
GStrv f;
fakehome = g_strdup(abs_srcdir "/qemufirmwaredata/home/user/.config"); fakehome = g_strdup(abs_srcdir "/qemufirmwaredata/home/user/.config");
@ -80,18 +80,18 @@ testFWPrecedence(const void *opaque G_GNUC_UNUSED)
return -1; return -1;
} }
nfwList = virStringListLength((const char **)fwList); for (e = expected, f = fwList; *f || *e;) {
if (STRNEQ_NULLABLE(*f, *e)) {
for (i = 0; i < MAX(nfwList, nexpected); i++) {
const char *e = i < nexpected ? expected[i] : NULL;
const char *f = i < nfwList ? fwList[i] : NULL;
if (STRNEQ_NULLABLE(e, f)) {
fprintf(stderr, fprintf(stderr,
"Unexpected path (i=%zu). Expected %s got %s \n", "Unexpected path. Expected %s got %s \n",
i, NULLSTR(e), NULLSTR(f)); NULLSTR(*e), NULLSTR(*f));
return -1; return -1;
} }
if (*f)
f++;
if (*e)
e++;
} }
return 0; return 0;