summaryrefslogtreecommitdiffstats
path: root/old-tests
diff options
context:
space:
mode:
authorJoe Thornber <thornber@redhat.com>2001-10-23 13:11:28 +0000
committerJoe Thornber <thornber@redhat.com>2001-10-23 13:11:28 +0000
commit05d8ef6f90064782b2a0fb418ec1030befe90e13 (patch)
tree3a70ddeaa7dee443d6cc11fd388a5860e9d81423 /old-tests
parent014a5c0bf0ab8c4c70308f199d4090037edef6ab (diff)
downloadlvm2-05d8ef6f90064782b2a0fb418ec1030befe90e13.tar.gz
lvm2-05d8ef6f90064782b2a0fb418ec1030befe90e13.tar.xz
lvm2-05d8ef6f90064782b2a0fb418ec1030befe90e13.zip
o test program for the new persistent filter.
Diffstat (limited to 'old-tests')
-rw-r--r--old-tests/filters/pfilter_t.c60
1 files changed, 54 insertions, 6 deletions
diff --git a/old-tests/filters/pfilter_t.c b/old-tests/filters/pfilter_t.c
index d03e4f8a..8e87f657 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 <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 (!(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();