]> sourceware.org Git - lvm2.git/commitdiff
o test program for the new persistent filter.
authorJoe Thornber <thornber@redhat.com>
Tue, 23 Oct 2001 13:11:28 +0000 (13:11 +0000)
committerJoe Thornber <thornber@redhat.com>
Tue, 23 Oct 2001 13:11:28 +0000 (13:11 +0000)
old-tests/filters/pfilter_t.c

index d03e4f8a4179c3b4ee2f258e4e161a2fb5f87cf4..8e87f657bbffb7bcfa340f0cad782e84eea96061 100644 (file)
@@ -7,6 +7,8 @@
 #include "filter-persistent.h"
 #include "log.h"
 #include "dbg_malloc.h"
+#include "config.h"
+#include "filter-regex.h"
 
 #include <stdio.h>
 #include <ctype.h>
 
 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 <file>\n", argv[0]);
+       if (argc < 2) {
+               fprintf(stderr, "Usage : %s <regex config>\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();
This page took 0.031428 seconds and 5 git commands to generate.