tests,json: Fix match if the first child differs

* tests/json/t-json.c (test_contains): Try all siblings of
the haystack child.

--
This fixes the case where we don't match against the
first child because the order might have changed or
a new element was inserted at the top. Then we
have to try out also all the siblings.
This commit is contained in:
Andre Heinecke 2018-11-14 15:17:18 +01:00
parent dd4b80a5f6
commit 27ca12e815
No known key found for this signature in database
GPG Key ID: 2978E9D40CBABA5C

View File

@ -154,7 +154,19 @@ test_contains (cjson_t needle, cjson_t hay)
}
if (test_contains (needle->child, hay->child))
{
return 1;
int found = 0;
for (cjson_t hit = hay->child; hit; hit = hit->next)
{
found |= !test_contains (needle->child, hit);
if (found)
{
break;
}
}
if (!found)
{
return 1;
}
}
}