aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2015-04-07 14:25:39 +1000
committerDavid Gibson <david@gibson.dropbear.id.au>2015-04-07 14:25:39 +1000
commitecd4f9d125fa58898dd7c4811e854e3d52146d1f (patch)
treecf0181fccbab09fe645769eb575a2ee5b67ae9b7
parent5fa047f498170496c37a9d5842d3b7eaf3907cca (diff)
downloaddtc-ecd4f9d125fa58898dd7c4811e854e3d52146d1f.zip
dtc-ecd4f9d125fa58898dd7c4811e854e3d52146d1f.tar.gz
dtc-ecd4f9d125fa58898dd7c4811e854e3d52146d1f.tar.bz2
Extend path_offset testcase for handling of duplicated separators
Paths with multiple '/' characters in a row (e.g. //somenode//somsubnode), or trailing '/' characters (e.g. '/somenode/somesubnode/') should be handled by fdt_path_offset(), and treated as equivalent to /somenode/somesubnode. Our current path_offset testcase doesn't check for these cases, so extend it so it does. Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
-rw-r--r--tests/path_offset.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/tests/path_offset.c b/tests/path_offset.c
index 0ff710d..af53daf 100644
--- a/tests/path_offset.c
+++ b/tests/path_offset.c
@@ -58,6 +58,8 @@ static void check_path_offset(void *fdt, char *path, int offset)
{
int rc;
+ verbose_printf("Checking offset of \"%s\" is %d...\n", path, offset);
+
rc = fdt_path_offset(fdt, path);
if (rc < 0)
FAIL("fdt_path_offset(\"%s\") failed: %s",
@@ -92,5 +94,13 @@ int main(int argc, char *argv[])
check_path_offset(fdt, "/subnode@2/subsubnode@0", subsubnode2_offset);
check_path_offset(fdt, "/subnode@2/subsubnode", subsubnode2_offset2);
+ /* Test paths with extraneous separators */
+ check_path_offset(fdt, "//", 0);
+ check_path_offset(fdt, "///", 0);
+ check_path_offset(fdt, "//subnode@1", subnode1_offset);
+ check_path_offset(fdt, "/subnode@1/", subnode1_offset);
+ check_path_offset(fdt, "//subnode@1///", subnode1_offset);
+ check_path_offset(fdt, "/subnode@2////subsubnode", subsubnode2_offset2);
+
PASS();
}