1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +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 "log.h"
#include "dbg_malloc.h"
#include "config.h"
#include "filter-regex.h"
#include <stdio.h>
#include <ctype.h>
@ -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 <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 (!(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");
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();