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:
parent
014a5c0bf0
commit
05d8ef6f90
@ -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();
|
||||
|
Loading…
Reference in New Issue
Block a user