userland - Port TCP-MD5 (RFC 2385) implementation.
[dragonfly.git] / lib / libdevattr / devattr_test.c
1 #include <stdlib.h>
2 #include <stdio.h>
3 #include <err.h>
4 #include "devattr.h"
5
6 int main(void)
7 {
8         struct udev *udev;
9         struct udev_enumerate *udev_enum;
10         struct udev_list_entry *udev_le, *udev_le_first;
11         struct udev_monitor *udev_monitor;
12         struct udev_device *udev_dev;
13         prop_array_t pa;
14         prop_dictionary_t dict;
15         int ret;
16
17         printf("1\n");
18         udev = udev_new();
19         if(udev == NULL) {
20                 perror("udev_new");
21                 exit(1);
22         }
23         printf("2\n");
24         udev_enum = udev_enumerate_new(udev);
25         if(udev == NULL) {
26                 perror("udev_enumerate_new");
27                 exit(1);
28         }
29         printf("3\n");
30
31         ret = udev_enumerate_add_match_expr(udev_enum, "name", "da*");
32         if (ret != 0)
33                 err(1, "udev_enumerate_add_match_expr, out, ret=%d\n", ret);
34
35         ret = udev_enumerate_add_match_regex(udev_enum, "name", "ad.*");
36         if (ret != 0)
37                 err(1, "udev_enumerate_add_match_regex, out, ret=%d\n", ret);
38
39         ret = udev_enumerate_scan_devices(udev_enum);
40         printf("4\n");
41         if (ret != 0) {
42                 printf("4 out...\n");
43                 err(1, "udev_enumerate_scan_device ret = %d", ret);
44         }
45
46         printf("5\n");
47         udev_le_first = udev_enumerate_get_list_entry(udev_enum);
48         printf("6\n");
49         if (udev_le_first == NULL)
50                 err(1, "udev_enumerate_get_list_entry error");
51
52         printf("7\n");
53         pa = udev_enumerate_get_array(udev_enum);
54         printf("8\n");
55         prop_array_externalize_to_file(pa, "array_out.xml");
56         printf("9\n");
57         udev_list_entry_foreach(udev_le, udev_le_first) {
58                 dict = udev_list_entry_get_dictionary(udev_le);
59                 printf("xml: %s\n\n\n", prop_dictionary_externalize(dict));
60         }
61
62         udev_enumerate_unref(udev_enum);
63
64         udev_monitor = udev_monitor_new(udev);
65 #if 1
66         ret = udev_monitor_filter_add_match_regex(udev_monitor, "name", "vn.*");
67         if (ret != 0)
68                 err(1, "udev_monitor_filter_add_match_expr ret = %d", ret);
69 #endif
70 #if 0
71         ret = udev_monitor_filter_add_nomatch_expr(udev_monitor, "name", "vn*");
72         if (ret != 0)
73                 err(1, "udev_monitor_filter_add_match_expr2 ret = %d", ret);
74 #endif
75         ret = udev_monitor_enable_receiving(udev_monitor);
76         if (ret != 0)
77                 err(1, "udev_monitor_enable_receiving ret = %d", ret);
78
79         printf("meeh\n");
80         while ((udev_dev = udev_monitor_receive_device(udev_monitor))) {
81                 printf("mooh\n");
82                 if (udev_dev == NULL)
83                         err(1, "udev_monitor_receive_device failed");
84
85                 printf("foo\n");
86                 dict = udev_device_get_dictionary(udev_dev);
87                 printf("xml of new device: %s\n", prop_dictionary_externalize(dict));
88         }
89         udev_monitor_unref(udev_monitor);
90         udev_unref(udev);
91         return 0;
92 }