tests: Check non-matching cases for fdt_node_check_compatible()
The current tests for fdt_node_check_compatible() test that it returns true on several matching cases, but don't test that it actually returns false on some non-matching cases, which isn't great coverage. Add some basic tests to address that. Signed-off-by: David Gibson <david@gibson.dropbear.id.au>main
parent
bba26a5291
commit
cc392f0890
|
@ -45,6 +45,23 @@ static void check_compatible(const void *fdt, const char *path,
|
|||
FAIL("%s is not compatible with \"%s\"", path, compat);
|
||||
}
|
||||
|
||||
static void check_not_compatible(const void *fdt, const char *path,
|
||||
const char *compat)
|
||||
{
|
||||
int offset, err;
|
||||
|
||||
offset = fdt_path_offset(fdt, path);
|
||||
if (offset < 0)
|
||||
FAIL("fdt_path_offset(%s): %s", path, fdt_strerror(offset));
|
||||
|
||||
err = fdt_node_check_compatible(fdt, offset, compat);
|
||||
if (err < 0)
|
||||
FAIL("fdt_node_check_compatible(%s): %s", path,
|
||||
fdt_strerror(err));
|
||||
if (err == 0)
|
||||
FAIL("%s is incorrectly compatible with \"%s\"", path, compat);
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
void *fdt;
|
||||
|
@ -55,8 +72,10 @@ int main(int argc, char *argv[])
|
|||
check_compatible(fdt, "/", "test_tree1");
|
||||
check_compatible(fdt, "/subnode@1/subsubnode", "subsubnode1");
|
||||
check_compatible(fdt, "/subnode@1/subsubnode", "subsubnode");
|
||||
check_not_compatible(fdt, "/subnode@1/subsubnode", "subsubnode2");
|
||||
check_compatible(fdt, "/subnode@2/subsubnode", "subsubnode2");
|
||||
check_compatible(fdt, "/subnode@2/subsubnode", "subsubnode");
|
||||
check_not_compatible(fdt, "/subnode@2/subsubnode", "subsubnode1");
|
||||
|
||||
PASS();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue