diff options
-rw-r--r-- | archival/libunarchive/find_list_entry.c | 2 | ||||
-rw-r--r-- | testsuite/README | 3 | ||||
-rw-r--r-- | testsuite/tar/tar-extracts-all-subdirs | 12 |
3 files changed, 16 insertions, 1 deletions
diff --git a/archival/libunarchive/find_list_entry.c b/archival/libunarchive/find_list_entry.c index 49bdd2d09..57ffec6ec 100644 --- a/archival/libunarchive/find_list_entry.c +++ b/archival/libunarchive/find_list_entry.c | |||
@@ -13,7 +13,7 @@ | |||
13 | const llist_t *find_list_entry(const llist_t *list, const char *filename) | 13 | const llist_t *find_list_entry(const llist_t *list, const char *filename) |
14 | { | 14 | { |
15 | while (list) { | 15 | while (list) { |
16 | if (fnmatch(list->data, filename, 0) == 0) { | 16 | if (fnmatch(list->data, filename, FNM_LEADING_DIR) == 0) { |
17 | return (list); | 17 | return (list); |
18 | } | 18 | } |
19 | list = list->link; | 19 | list = list->link; |
diff --git a/testsuite/README b/testsuite/README index 40439bfe8..377f20ef8 100644 --- a/testsuite/README +++ b/testsuite/README | |||
@@ -1,3 +1,6 @@ | |||
1 | Update: doesn't work as described. Try "make check" from parent dir... | ||
2 | * * * | ||
3 | |||
1 | To run the test suite, change to this directory and run "./runtest". It will | 4 | To run the test suite, change to this directory and run "./runtest". It will |
2 | run all of the test cases, and list those with unexpected outcomes. Adding the | 5 | run all of the test cases, and list those with unexpected outcomes. Adding the |
3 | -v option will cause it to show expected outcomes as well. To only run the test | 6 | -v option will cause it to show expected outcomes as well. To only run the test |
diff --git a/testsuite/tar/tar-extracts-all-subdirs b/testsuite/tar/tar-extracts-all-subdirs new file mode 100644 index 000000000..886c37ce9 --- /dev/null +++ b/testsuite/tar/tar-extracts-all-subdirs | |||
@@ -0,0 +1,12 @@ | |||
1 | # FEATURE: CONFIG_FEATURE_TAR_CREATE | ||
2 | mkdir -p foo/{1,2,3} | ||
3 | mkdir -p foo/1/{10,11} | ||
4 | mkdir -p foo/1/10/{100,101,102} | ||
5 | tar cf foo.tar -C foo . | ||
6 | rm -rf foo/* | ||
7 | busybox tar xf foo.tar -C foo ./1/10 | ||
8 | find foo | sort >logfile.bb | ||
9 | rm -rf foo/* | ||
10 | tar xf foo.tar -C foo ./1/10 | ||
11 | find foo | sort >logfile.gnu | ||
12 | cmp logfile.gnu logfile.bb | ||