]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/test/test-uid-range.c
85a16c558c639acd71c9f925dc38d32773a4eb7f
1 /* SPDX-License-Identifier: LGPL-2.1+ */
3 This file is part of systemd.
5 Copyright 2014 Lennart Poettering
10 #include "alloc-util.h"
11 #include "uid-range.h"
12 #include "user-util.h"
15 int main(int argc
, char *argv
[]) {
16 _cleanup_free_ UidRange
*p
= NULL
;
20 assert_se(uid_range_add_str(&p
, &n
, "500-999") >= 0);
22 assert_se(p
[0].start
== 500);
23 assert_se(p
[0].nr
== 500);
25 assert_se(!uid_range_contains(p
, n
, 499));
26 assert_se(uid_range_contains(p
, n
, 500));
27 assert_se(uid_range_contains(p
, n
, 999));
28 assert_se(!uid_range_contains(p
, n
, 1000));
31 assert_se(uid_range_next_lower(p
, n
, &search
));
32 assert_se(search
== 999);
33 assert_se(uid_range_next_lower(p
, n
, &search
));
34 assert_se(search
== 998);
36 assert_se(uid_range_next_lower(p
, n
, &search
));
37 assert_se(search
== 500);
38 assert_se(uid_range_next_lower(p
, n
, &search
) == -EBUSY
);
40 assert_se(uid_range_add_str(&p
, &n
, "1000") >= 0);
42 assert_se(p
[0].start
== 500);
43 assert_se(p
[0].nr
== 501);
45 assert_se(uid_range_add_str(&p
, &n
, "30-40") >= 0);
47 assert_se(p
[0].start
== 30);
48 assert_se(p
[0].nr
== 11);
49 assert_se(p
[1].start
== 500);
50 assert_se(p
[1].nr
== 501);
52 assert_se(uid_range_add_str(&p
, &n
, "60-70") >= 0);
54 assert_se(p
[0].start
== 30);
55 assert_se(p
[0].nr
== 11);
56 assert_se(p
[1].start
== 60);
57 assert_se(p
[1].nr
== 11);
58 assert_se(p
[2].start
== 500);
59 assert_se(p
[2].nr
== 501);
61 assert_se(uid_range_add_str(&p
, &n
, "20-2000") >= 0);
63 assert_se(p
[0].start
== 20);
64 assert_se(p
[0].nr
== 1981);
66 assert_se(uid_range_add_str(&p
, &n
, "2002") >= 0);
68 assert_se(p
[0].start
== 20);
69 assert_se(p
[0].nr
== 1981);
70 assert_se(p
[1].start
== 2002);
71 assert_se(p
[1].nr
== 1);
73 assert_se(uid_range_add_str(&p
, &n
, "2001") >= 0);
75 assert_se(p
[0].start
== 20);
76 assert_se(p
[0].nr
== 1983);