summaryrefslogtreecommitdiffstats
path: root/old-tests
diff options
context:
space:
mode:
authorJoe Thornber <thornber@redhat.com>2001-10-19 18:20:37 +0000
committerJoe Thornber <thornber@redhat.com>2001-10-19 18:20:37 +0000
commit291ec3b6c0cc22e368534075310c1d8c868ed826 (patch)
tree8e3ce7d1a8ae1f41adf05fb726306d3044054114 /old-tests
parentd1b28647ed4d17d22155a9da061a551572c39d2b (diff)
downloadlvm2-291ec3b6c0cc22e368534075310c1d8c868ed826.tar.gz
lvm2-291ec3b6c0cc22e368534075310c1d8c868ed826.tar.xz
lvm2-291ec3b6c0cc22e368534075310c1d8c868ed826.zip
o Filter for the dev cache that takes values from config file:
devices { # first match is final, eg. /dev/ide/cdrom # get's rejected due to the first pattern filter=["r/cdrom/", # don't touch the music ! "a/hd[a-d][0-9]+/", "a/ide/", "a/sd/", "a/md/", "a|loop/[0-9]+|", # accept devfs style loop back "r/loop/", # and reject old style "a/dasd/", "a/dac960/", "a/nbd/", "a/ida/", "a/cciss/", "a/ubd/", "r/.*/"] # reject all others } Alasdair this is ready to roll into the tools now.
Diffstat (limited to 'old-tests')
-rw-r--r--old-tests/filters/Makefile.in21
-rw-r--r--old-tests/filters/rfilter_t.c84
-rw-r--r--old-tests/filters/sample.cfg21
-rw-r--r--old-tests/regex/matcher_t.c2
4 files changed, 127 insertions, 1 deletions
diff --git a/old-tests/filters/Makefile.in b/old-tests/filters/Makefile.in
new file mode 100644
index 00000000..35fee47d
--- /dev/null
+++ b/old-tests/filters/Makefile.in
@@ -0,0 +1,21 @@
+#
+# Copyright (C) 2001 Sistina Software (UK) Limited
+#
+# This file is released under the GPL.
+#
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+
+SOURCES=\
+ rfilter_t.c
+
+TARGETS=\
+ rfilter_t
+
+include ../../make.tmpl
+
+rfilter_t: rfilter_t.o $(top_srcdir)/lib/liblvm.a
+ $(CC) -o rfilter_t rfilter_t.o -L$(top_srcdir)/lib -llvm
+
diff --git a/old-tests/filters/rfilter_t.c b/old-tests/filters/rfilter_t.c
new file mode 100644
index 00000000..2a917a5c
--- /dev/null
+++ b/old-tests/filters/rfilter_t.c
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2001 Sistina Software (UK) Limited.
+ *
+ * This file is released under the GPL.
+ */
+
+#include "filter-regex.h"
+#include "config.h"
+#include "log.h"
+#include "dbg_malloc.h"
+
+#include <stdio.h>
+#include <ctype.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/mman.h>
+
+int main(int argc, char **argv)
+{
+ struct config_file *cf;
+ struct config_node *cn;
+ struct dev_filter *filter;
+ struct dev_iter *iter;
+ struct device *dev;
+
+ if (argc < 2) {
+ fprintf(stderr, "Usage : %s <config_file>\n", argv[0]);
+ exit(1);
+ }
+
+ init_log(stderr);
+ init_debug(_LOG_DEBUG);
+
+ 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 (!dev_cache_init()) {
+ fprintf(stderr, "couldn't initialise dev_cache_init failed\n");
+ exit(1);
+ }
+
+ if (!dev_cache_add_dir("/dev")) {
+ fprintf(stderr, "couldn't add '/dev' to dev_cache\n");
+ exit(1);
+ }
+
+ if (!(filter = regex_filter_create(cn->v))) {
+ fprintf(stderr, "couldn't build filter\n");
+ exit(1);
+ }
+
+ if (!(iter = dev_iter_create(filter))) {
+ log_err("couldn't create iterator");
+ exit(1);
+ }
+
+ while ((dev = dev_iter_get(iter)))
+ printf("%s\n", dev->name);
+
+ dev_iter_destroy(iter);
+ filter->destroy(filter);
+ dev_cache_exit();
+ destroy_config_file(cf);
+
+ dump_memory();
+ fin_log();
+ return 0;
+}
+
diff --git a/old-tests/filters/sample.cfg b/old-tests/filters/sample.cfg
new file mode 100644
index 00000000..02f98dea
--- /dev/null
+++ b/old-tests/filters/sample.cfg
@@ -0,0 +1,21 @@
+devices {
+
+ # first match is final, eg. /dev/ide/cdrom
+ # get's rejected due to the first pattern
+
+ filter=["r/cdrom/", # don't touch the music !
+ "a/hd[a-d][0-9]+/",
+ "a/ide/",
+ "a/sd/",
+ "a/md/",
+ "a|loop/[0-9]+|", # accept devfs style loop back
+ "r/loop/", # and reject old style
+ "a/dasd/",
+ "a/dac960/",
+ "a/nbd/",
+ "a/ida/",
+ "a/cciss/",
+ "a/ubd/",
+ "r/.*/"] # reject all others
+
+}
diff --git a/old-tests/regex/matcher_t.c b/old-tests/regex/matcher_t.c
index 00deea94..6b8b24d8 100644
--- a/old-tests/regex/matcher_t.c
+++ b/old-tests/regex/matcher_t.c
@@ -87,7 +87,7 @@ static void _scan_input(struct matcher *m, char **regex)
if ((ptr = strchr(buffer, '\n')))
*ptr = '\0';
- r = matcher_run(m, buffer, buffer + strlen(buffer));
+ r = matcher_run(m, buffer);
if (r >= 0)
printf("%s : %s\n", buffer, regex[r]);