From: Joe Thornber Date: Tue, 23 Oct 2001 13:11:28 +0000 (+0000) Subject: o test program for the new persistent filter. X-Git-Tag: v2_02_91~6134 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=05d8ef6f90064782b2a0fb418ec1030befe90e13;p=lvm2.git o test program for the new persistent filter. --- diff --git a/old-tests/filters/pfilter_t.c b/old-tests/filters/pfilter_t.c index d03e4f8a4..8e87f657b 100644 --- a/old-tests/filters/pfilter_t.c +++ b/old-tests/filters/pfilter_t.c @@ -7,6 +7,8 @@ #include "filter-persistent.h" #include "log.h" #include "dbg_malloc.h" +#include "config.h" +#include "filter-regex.h" #include #include @@ -19,12 +21,15 @@ int main(int argc, char **argv) { - struct dev_filter *filter; + struct config_file *cf; + struct config_node *cn; + struct dev_filter *rfilter, *pfilter; struct dev_iter *iter; struct device *dev; - if (argc > 2) { - fprintf(stderr, "Usage : %s \n", argv[0]); + if (argc < 2) { + fprintf(stderr, "Usage : %s \n", + argv[0]); exit(1); } @@ -41,12 +46,54 @@ int main(int argc, char **argv) exit(1); } - if (!(filter = persistent_filter_create("./pfilter.cfg", 1))) { + if (!(cf = create_config_file())) { + fprintf(stderr, "couldn't create config file\n"); + exit(1); + } + + if (!read_config(cf, argv[1])) { + fprintf(stderr, "couldn't read config file\n"); + exit(1); + } + + if (!(cn = find_config_node(cf->root, "/devices/filter", '/'))) { + fprintf(stderr, "couldn't find filter section\n"); + exit(1); + } + + if (!(rfilter = regex_filter_create(cn->v))) { + fprintf(stderr, "couldn't build filter\n"); + exit(1); + } + + if (!(pfilter = persistent_filter_create(rfilter, "./pfilter.cfg"))) { fprintf(stderr, "couldn't build filter\n"); exit(1); } - if (!(iter = dev_iter_create(filter))) { + if (!(iter = dev_iter_create(pfilter))) { + log_err("couldn't create iterator"); + exit(1); + } + + fprintf(stderr, "filling cache\n"); + while ((dev = dev_iter_get(iter))) + ; + dev_iter_destroy(iter); + + fprintf(stderr, "dumping\n"); + if (!persistent_filter_dump(pfilter)) { + fprintf(stderr, "couldn't dump pfilter\n"); + exit(1); + } + + fprintf(stderr, "loading\n"); + if (!persistent_filter_load(pfilter)) { + fprintf(stderr, "couldn't load pfilter\n"); + exit(1); + } + + if (!(iter = dev_iter_create(pfilter))) { log_err("couldn't create iterator"); exit(1); } @@ -55,8 +102,9 @@ int main(int argc, char **argv) printf("%s\n", dev->name); dev_iter_destroy(iter); - filter->destroy(filter); + pfilter->destroy(pfilter); dev_cache_exit(); + destroy_config_file(cf); dump_memory(); fin_log();