chiark / gitweb /
use the same email address everywhere
[elogind.git] / src / test / test-unit-name.c
1 /*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
2
3 /***
4   This file is part of systemd.
5
6   Copyright 2012 Lennart Poettering
7
8   systemd is free software; you can redistribute it and/or modify it
9   under the terms of the GNU Lesser General Public License as published by
10   the Free Software Foundation; either version 2.1 of the License, or
11   (at your option) any later version.
12
13   systemd is distributed in the hope that it will be useful, but
14   WITHOUT ANY WARRANTY; without even the implied warranty of
15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16   Lesser General Public License for more details.
17
18   You should have received a copy of the GNU Lesser General Public License
19   along with systemd; If not, see <http://www.gnu.org/licenses/>.
20 ***/
21
22 #include <stdio.h>
23 #include <stdlib.h>
24 #include <string.h>
25
26 #include "unit-name.h"
27 #include "util.h"
28
29 int main(int argc, char* argv[]) {
30         char *t, *k;
31
32         t = unit_name_replace_instance("foo@.service", "waldo");
33         puts(t);
34         free(t);
35
36         t = unit_name_replace_instance("foo@xyz.service", "waldo");
37         puts(t);
38         free(t);
39
40         t = unit_name_replace_instance("xyz", "waldo");
41         puts(t);
42         free(t);
43
44         t = unit_name_replace_instance("", "waldo");
45         puts(t);
46         free(t);
47
48         t = unit_name_replace_instance("", "");
49         puts(t);
50         free(t);
51
52         t = unit_name_replace_instance("foo.service", "waldo");
53         puts(t);
54         free(t);
55
56         t = unit_name_replace_instance(".service", "waldo");
57         puts(t);
58         free(t);
59
60         t = unit_name_replace_instance("foo@bar", "waldo");
61         puts(t);
62         free(t);
63
64         t = unit_name_replace_instance("foo@", "waldo");
65         puts(t);
66         free(t);
67
68         t = unit_name_replace_instance("@", "waldo");
69         puts(t);
70         free(t);
71
72         t = unit_name_replace_instance("@bar", "waldo");
73         puts(t);
74         free(t);
75
76         t = unit_name_from_path("/waldo", ".mount");
77         puts(t);
78         k = unit_name_to_path(t);
79         puts(k);
80         free(k);
81         free(t);
82
83         t = unit_name_from_path("/waldo/quuix", ".mount");
84         puts(t);
85         k = unit_name_to_path(t);
86         puts(k);
87         free(k);
88         free(t);
89
90         t = unit_name_from_path("/waldo/quuix/", ".mount");
91         puts(t);
92         k = unit_name_to_path(t);
93         puts(k);
94         free(k);
95         free(t);
96
97         t = unit_name_from_path("/", ".mount");
98         puts(t);
99         k = unit_name_to_path(t);
100         puts(k);
101         free(k);
102         free(t);
103
104         t = unit_name_from_path("///", ".mount");
105         puts(t);
106         k = unit_name_to_path(t);
107         puts(k);
108         free(k);
109         free(t);
110
111         t = unit_name_from_path_instance("waldo", "/waldo", ".mount");
112         puts(t);
113         free(t);
114
115         t = unit_name_from_path_instance("waldo", "/waldo////quuix////", ".mount");
116         puts(t);
117         free(t);
118
119         t = unit_name_from_path_instance("waldo", "/", ".mount");
120         puts(t);
121         free(t);
122
123         t = unit_name_from_path_instance("wa--ldo", "/--", ".mount");
124         puts(t);
125         free(t);
126
127         assert_se(t = unit_name_mangle("/home"));
128         assert_se(k = unit_name_mangle(t));
129         puts(t);
130         assert_se(streq(t, k));
131         free(t);
132         free(k);
133
134         assert_se(t = unit_name_mangle("/dev/sda"));
135         assert_se(k = unit_name_mangle(t));
136         puts(t);
137         assert_se(streq(t, k));
138         free(t);
139         free(k);
140
141         assert_se(t = unit_name_mangle("üxknürz.service"));
142         assert_se(k = unit_name_mangle(t));
143         puts(t);
144         assert_se(streq(t, k));
145         free(t);
146         free(k);
147
148         assert_se(t = unit_name_mangle("foobar-meh...waldi.service"));
149         assert_se(k = unit_name_mangle(t));
150         puts(t);
151         assert_se(streq(t, k));
152         free(t);
153         free(k);
154
155         assert_se(t = unit_name_mangle("_____####----.....service"));
156         assert_se(k = unit_name_mangle(t));
157         puts(t);
158         assert_se(streq(t, k));
159         free(t);
160         free(k);
161
162         assert_se(t = unit_name_mangle("_____##@;;;,,,##----.....service"));
163         assert_se(k = unit_name_mangle(t));
164         puts(t);
165         assert_se(streq(t, k));
166         free(t);
167         free(k);
168
169         assert_se(t = unit_name_mangle("xxx@@@@/////\\\\\\\\\\yyy.service"));
170         assert_se(k = unit_name_mangle(t));
171         puts(t);
172         assert_se(streq(t, k));
173         free(t);
174         free(k);
175
176         return 0;
177 }