mirror of https://gitlab.com/qemu-project/dtc.git
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>
This commit is contained in:
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);
|
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[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
void *fdt;
|
void *fdt;
|
||||||
|
@ -55,8 +72,10 @@ int main(int argc, char *argv[])
|
||||||
check_compatible(fdt, "/", "test_tree1");
|
check_compatible(fdt, "/", "test_tree1");
|
||||||
check_compatible(fdt, "/subnode@1/subsubnode", "subsubnode1");
|
check_compatible(fdt, "/subnode@1/subsubnode", "subsubnode1");
|
||||||
check_compatible(fdt, "/subnode@1/subsubnode", "subsubnode");
|
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", "subsubnode2");
|
||||||
check_compatible(fdt, "/subnode@2/subsubnode", "subsubnode");
|
check_compatible(fdt, "/subnode@2/subsubnode", "subsubnode");
|
||||||
|
check_not_compatible(fdt, "/subnode@2/subsubnode", "subsubnode1");
|
||||||
|
|
||||||
PASS();
|
PASS();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue