diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/libfstree/Makemodule.am | 1 | ||||
| -rw-r--r-- | tests/libfstree/fstree1.txt | 1 | ||||
| -rw-r--r-- | tests/libfstree/fstree_from_file.c | 3 | ||||
| -rw-r--r-- | tests/libfstree/fstree_glob1.c | 59 | ||||
| -rw-r--r-- | tests/libfstree/fstree_glob3.txt | 2 | 
5 files changed, 47 insertions, 19 deletions
| diff --git a/tests/libfstree/Makemodule.am b/tests/libfstree/Makemodule.am index 4dc6da1..8248f5c 100644 --- a/tests/libfstree/Makemodule.am +++ b/tests/libfstree/Makemodule.am @@ -74,3 +74,4 @@ endif  EXTRA_DIST += $(FSTDATADIR)/fstree1.txt  EXTRA_DIST += $(FSTDATADIR)/fstree_glob1.txt $(FSTDATADIR)/fstree_glob2.txt +EXTRA_DIST += $(FSTDATADIR)/fstree_glob3.txt diff --git a/tests/libfstree/fstree1.txt b/tests/libfstree/fstree1.txt index 090aff9..95ee469 100644 --- a/tests/libfstree/fstree1.txt +++ b/tests/libfstree/fstree1.txt @@ -4,6 +4,7 @@ dir /dir 0755 4 5  nod /chardev 0600 6 7 c 13 37  nod /blkdev 0600 8 9 b 42 21  pipe /pipe 0644 10 11 +dir / 0755 1000 100  dir "/foo bar" 0755 0 0  dir "/foo bar/ test \"/" 0755 0 0    sock  /sock  0555  12  13  
\ No newline at end of file diff --git a/tests/libfstree/fstree_from_file.c b/tests/libfstree/fstree_from_file.c index c8816e6..5d37960 100644 --- a/tests/libfstree/fstree_from_file.c +++ b/tests/libfstree/fstree_from_file.c @@ -21,6 +21,9 @@ int main(void)  	n = fs.root->data.dir.children;  	TEST_EQUAL_UI(fs.root->link_count, 9); +	TEST_EQUAL_UI(fs.root->mode, S_IFDIR | 0755); +	TEST_EQUAL_UI(fs.root->uid, 1000); +	TEST_EQUAL_UI(fs.root->gid, 100);  	TEST_EQUAL_UI(n->mode, S_IFBLK | 0600);  	TEST_EQUAL_UI(n->uid, 8); diff --git a/tests/libfstree/fstree_glob1.c b/tests/libfstree/fstree_glob1.c index 592180b..708b0e8 100644 --- a/tests/libfstree/fstree_glob1.c +++ b/tests/libfstree/fstree_glob1.c @@ -9,22 +9,32 @@  #include "fstree.h"  #include "../test.h" -static void check_hierarchy(tree_node_t *root, bool recursive) +static void check_hierarchy(tree_node_t *root, bool subdir, bool recursive)  { -	tree_node_t *n, *m; - -	n = root->data.dir.children; -	TEST_NOT_NULL(n); -	TEST_STR_EQUAL(n->name, "tarcorpus"); -	TEST_ASSERT(S_ISDIR(n->mode)); -	TEST_ASSERT(n->parent == root); -	TEST_NULL(n->next); +	tree_node_t *n, *m, *parentdir; + +	if (subdir) { +		n = root->data.dir.children; +		TEST_NOT_NULL(n); +		TEST_STR_EQUAL(n->name, "tarcorpus"); +		TEST_ASSERT(S_ISDIR(n->mode)); +		TEST_ASSERT(n->parent == root); +		TEST_NULL(n->next); +	} else { +		n = root; +		TEST_NOT_NULL(n); +		TEST_STR_EQUAL(n->name, ""); +		TEST_ASSERT(S_ISDIR(n->mode)); +		TEST_NULL(n->parent); +		TEST_NULL(n->next); +	} +	parentdir = n;  	n = n->data.dir.children;  	TEST_NOT_NULL(n);  	TEST_STR_EQUAL(n->name, "file-size");  	TEST_ASSERT(S_ISDIR(n->mode)); -	TEST_ASSERT(n->parent == root->data.dir.children); +	TEST_ASSERT(n->parent == parentdir);  	if (recursive) {  		m = n->data.dir.children; @@ -43,7 +53,7 @@ static void check_hierarchy(tree_node_t *root, bool recursive)  	TEST_NOT_NULL(n);  	TEST_STR_EQUAL(n->name, "format-acceptance");  	TEST_ASSERT(S_ISDIR(n->mode)); -	TEST_ASSERT(n->parent == root->data.dir.children); +	TEST_ASSERT(n->parent == parentdir);  	if (recursive) {  		m = n->data.dir.children; @@ -68,7 +78,7 @@ static void check_hierarchy(tree_node_t *root, bool recursive)  	TEST_NOT_NULL(n);  	TEST_STR_EQUAL(n->name, "large-mtime");  	TEST_ASSERT(S_ISDIR(n->mode)); -	TEST_ASSERT(n->parent == root->data.dir.children); +	TEST_ASSERT(n->parent == parentdir);  	if (recursive) {  		m = n->data.dir.children; @@ -87,7 +97,7 @@ static void check_hierarchy(tree_node_t *root, bool recursive)  	TEST_NOT_NULL(n);  	TEST_STR_EQUAL(n->name, "long-paths");  	TEST_ASSERT(S_ISDIR(n->mode)); -	TEST_ASSERT(n->parent == root->data.dir.children); +	TEST_ASSERT(n->parent == parentdir);  	if (recursive) {  		m = n->data.dir.children; @@ -106,7 +116,7 @@ static void check_hierarchy(tree_node_t *root, bool recursive)  	TEST_NOT_NULL(n);  	TEST_STR_EQUAL(n->name, "negative-mtime");  	TEST_ASSERT(S_ISDIR(n->mode)); -	TEST_ASSERT(n->parent == root->data.dir.children); +	TEST_ASSERT(n->parent == parentdir);  	if (recursive) {  		m = n->data.dir.children; @@ -125,7 +135,7 @@ static void check_hierarchy(tree_node_t *root, bool recursive)  	TEST_NOT_NULL(n);  	TEST_STR_EQUAL(n->name, "sparse-files");  	TEST_ASSERT(S_ISDIR(n->mode)); -	TEST_ASSERT(n->parent == root->data.dir.children); +	TEST_ASSERT(n->parent == parentdir);  	if (recursive) {  		m = n->data.dir.children; @@ -168,7 +178,7 @@ static void check_hierarchy(tree_node_t *root, bool recursive)  	TEST_NOT_NULL(n);  	TEST_STR_EQUAL(n->name, "user-group-largenum");  	TEST_ASSERT(S_ISDIR(n->mode)); -	TEST_ASSERT(n->parent == root->data.dir.children); +	TEST_ASSERT(n->parent == parentdir);  	if (recursive) {  		m = n->data.dir.children; @@ -187,7 +197,7 @@ static void check_hierarchy(tree_node_t *root, bool recursive)  	TEST_NOT_NULL(n);  	TEST_STR_EQUAL(n->name, "xattr");  	TEST_ASSERT(S_ISDIR(n->mode)); -	TEST_ASSERT(n->parent == root->data.dir.children); +	TEST_ASSERT(n->parent == parentdir);  	TEST_NULL(n->data.dir.children);  	n = n->next; @@ -207,7 +217,7 @@ int main(void)  	TEST_EQUAL_I(ret, 0);  	fstree_post_process(&fs); -	check_hierarchy(fs.root, false); +	check_hierarchy(fs.root, true, false);  	fstree_cleanup(&fs);  	/* first test case, directory tree plus fnmatch()ed files */ @@ -218,7 +228,18 @@ int main(void)  	TEST_EQUAL_I(ret, 0);  	fstree_post_process(&fs); -	check_hierarchy(fs.root, true); +	check_hierarchy(fs.root, true, true); +	fstree_cleanup(&fs); + +	/* third test case, same as second, but entries directly at the root */ +	ret = fstree_init(&fs, NULL); +	TEST_EQUAL_I(ret, 0); + +	ret = fstree_from_file(&fs, TEST_PATH "/fstree_glob3.txt", TEST_PATH); +	TEST_EQUAL_I(ret, 0); + +	fstree_post_process(&fs); +	check_hierarchy(fs.root, false, true);  	fstree_cleanup(&fs);  	return EXIT_SUCCESS;  } diff --git a/tests/libfstree/fstree_glob3.txt b/tests/libfstree/fstree_glob3.txt new file mode 100644 index 0000000..35090e4 --- /dev/null +++ b/tests/libfstree/fstree_glob3.txt @@ -0,0 +1,2 @@ +glob / 0755 0 0 -type d ../libtar/data +glob / 0644 0 0 -type f -name "*gnu*.tar" -- ../libtar/data | 
