summaryrefslogtreecommitdiffstats
path: root/old-tests/filters/rfilter_t.c
diff options
context:
space:
mode:
Diffstat (limited to 'old-tests/filters/rfilter_t.c')
-rw-r--r--old-tests/filters/rfilter_t.c84
1 files changed, 84 insertions, 0 deletions
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;
+}
+