1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-01-03 05:18:29 +03:00

o test program for the new persistent filter.

This commit is contained in:
Joe Thornber 2001-10-23 13:11:28 +00:00
parent 014a5c0bf0
commit 05d8ef6f90

View File

@ -7,6 +7,8 @@
#include "filter-persistent.h" #include "filter-persistent.h"
#include "log.h" #include "log.h"
#include "dbg_malloc.h" #include "dbg_malloc.h"
#include "config.h"
#include "filter-regex.h"
#include <stdio.h> #include <stdio.h>
#include <ctype.h> #include <ctype.h>
@ -19,12 +21,15 @@
int main(int argc, char **argv) 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 dev_iter *iter;
struct device *dev; struct device *dev;
if (argc > 2) { if (argc < 2) {
fprintf(stderr, "Usage : %s <file>\n", argv[0]); fprintf(stderr, "Usage : %s <regex config>\n",
argv[0]);
exit(1); exit(1);
} }
@ -41,12 +46,54 @@ int main(int argc, char **argv)
exit(1); 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"); fprintf(stderr, "couldn't build filter\n");
exit(1); exit(1);
} }
if (!(iter = dev_iter_create(filter))) { if (!(pfilter = persistent_filter_create(rfilter, "./pfilter.cfg"))) {
fprintf(stderr, "couldn't build filter\n");
exit(1);
}
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"); log_err("couldn't create iterator");
exit(1); exit(1);
} }
@ -55,8 +102,9 @@ int main(int argc, char **argv)
printf("%s\n", dev->name); printf("%s\n", dev->name);
dev_iter_destroy(iter); dev_iter_destroy(iter);
filter->destroy(filter); pfilter->destroy(pfilter);
dev_cache_exit(); dev_cache_exit();
destroy_config_file(cf);
dump_memory(); dump_memory();
fin_log(); fin_log();