From d7409bbc5e24267b275692b48116254d842d3821 Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Thu, 18 Feb 2021 11:38:44 +0100 Subject: fstree_from_file: Implement basic file globbing The base path is passed to the fstree_from_file function and in turn to the individual callbacks. The line parsing function is modified to allow '*' as mode, uid and gid for specifically marked callbacks. A glob callback is added that internally uses the fstree_from_dir scanning functions in combination with a filter callback. Directory scanning flags are parsed from the extra arguments before interpreting it as a path fragment. Signed-off-by: David Oberhollenzer --- tests/fstree_from_dir.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'tests/fstree_from_dir.c') diff --git a/tests/fstree_from_dir.c b/tests/fstree_from_dir.c index 8e08aeb..af48d4d 100644 --- a/tests/fstree_from_dir.c +++ b/tests/fstree_from_dir.c @@ -321,7 +321,8 @@ int main(void) /* recursively scan into root */ TEST_ASSERT(fstree_init(&fs, NULL) == 0); - TEST_ASSERT(fstree_from_dir(&fs, fs.root, TEST_PATH, 0) == 0); + TEST_ASSERT(fstree_from_dir(&fs, fs.root, TEST_PATH, + NULL, NULL, 0) == 0); fstree_post_process(&fs); check_hierarchy(fs.root, true); @@ -329,8 +330,8 @@ int main(void) /* non-recursively scan into root */ TEST_ASSERT(fstree_init(&fs, NULL) == 0); - TEST_ASSERT(fstree_from_dir(&fs, fs.root, - TEST_PATH, DIR_SCAN_NO_RECURSION) == 0); + TEST_ASSERT(fstree_from_dir(&fs, fs.root, TEST_PATH, NULL, NULL, + DIR_SCAN_NO_RECURSION) == 0); fstree_post_process(&fs); check_hierarchy(fs.root, false); @@ -346,7 +347,7 @@ int main(void) TEST_NOT_NULL(n); fs.root->data.dir.children = n; - TEST_ASSERT(fstree_from_dir(&fs, n, TEST_PATH, 0) == 0); + TEST_ASSERT(fstree_from_dir(&fs, n, TEST_PATH, NULL, NULL, 0) == 0); TEST_ASSERT(fs.root->data.dir.children == n); TEST_NULL(n->next); @@ -365,8 +366,8 @@ int main(void) TEST_NOT_NULL(n); fs.root->data.dir.children = n; - TEST_ASSERT(fstree_from_dir(&fs, n, - TEST_PATH, DIR_SCAN_NO_RECURSION) == 0); + TEST_ASSERT(fstree_from_dir(&fs, n, TEST_PATH, NULL, NULL, + DIR_SCAN_NO_RECURSION) == 0); TEST_ASSERT(fs.root->data.dir.children == n); TEST_NULL(n->next); -- cgit v1.2.3