[Xenomai-git] Philippe Gerum : lib/smokey: fix glob matching for tests
Module: xenomai-forge Branch: next Commit: c657ab5a5588c483a1215a38c4af7f0e3c80eb83 URL: http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=c657ab5a5588c483a1215a38c4af7f0e3c80eb83 Author: Philippe Gerum Date: Wed Sep 10 09:43:28 2014 +0200 lib/smokey: fix glob matching for tests --- lib/smokey/init.c | 25 + 1 file changed, 25 insertions(+) diff --git a/lib/smokey/init.c b/lib/smokey/init.c index 965bef5..a77d420 100644 --- a/lib/smokey/init.c +++ b/lib/smokey/init.c @@ -333,6 +333,25 @@ static int resolve_id(const char *s) return -1; } +static int glob_match(const char *s) +{ + struct smokey_test *t, *tmp; + int matches = 0; + + if (pvlist_empty(®ister_list)) + return 0; + + pvlist_for_each_entry_safe(t, tmp, ®ister_list, __reserved.next) { + if (!fnmatch(s, t->name, FNM_PATHNAME)) { + pvlist_remove(&t->__reserved.next); + pvlist_append(&t->__reserved.next, &smokey_test_list); + matches++; + } + } + + return matches; +} + static int build_test_list(const char *test_enum) { char *s = strdup(test_enum), *n, *range, *range_p = NULL, *id, *id_r; @@ -347,6 +366,12 @@ static int build_test_list(const char *test_enum) end = test_count - 1; id = strtok_r(range, "-", &id_r); if (id) { + if (glob_match(id)) { + if (strtok_r(NULL, "-", &id_r)) + goto fail; + n = NULL; + continue; + } start = resolve_id(id); if (*range == '-') { end = start; ___ Xenomai-git mailing list Xenomai-git@xenomai.org http://www.xenomai.org/mailman/listinfo/xenomai-git
[Xenomai-git] Philippe Gerum : lib/smokey: fix glob matching for tests
Module: xenomai-forge Branch: next Commit: 9f2a9a610be80470e124df71352ac0d28b8aab83 URL: http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=9f2a9a610be80470e124df71352ac0d28b8aab83 Author: Philippe Gerum Date: Wed Sep 10 09:43:28 2014 +0200 lib/smokey: fix glob matching for tests --- lib/smokey/init.c | 25 + 1 file changed, 25 insertions(+) diff --git a/lib/smokey/init.c b/lib/smokey/init.c index 965bef5..a77d420 100644 --- a/lib/smokey/init.c +++ b/lib/smokey/init.c @@ -333,6 +333,25 @@ static int resolve_id(const char *s) return -1; } +static int glob_match(const char *s) +{ + struct smokey_test *t, *tmp; + int matches = 0; + + if (pvlist_empty(®ister_list)) + return 0; + + pvlist_for_each_entry_safe(t, tmp, ®ister_list, __reserved.next) { + if (!fnmatch(s, t->name, FNM_PATHNAME)) { + pvlist_remove(&t->__reserved.next); + pvlist_append(&t->__reserved.next, &smokey_test_list); + matches++; + } + } + + return matches; +} + static int build_test_list(const char *test_enum) { char *s = strdup(test_enum), *n, *range, *range_p = NULL, *id, *id_r; @@ -347,6 +366,12 @@ static int build_test_list(const char *test_enum) end = test_count - 1; id = strtok_r(range, "-", &id_r); if (id) { + if (glob_match(id)) { + if (strtok_r(NULL, "-", &id_r)) + goto fail; + n = NULL; + continue; + } start = resolve_id(id); if (*range == '-') { end = start; ___ Xenomai-git mailing list Xenomai-git@xenomai.org http://www.xenomai.org/mailman/listinfo/xenomai-git