]>
git.proxmox.com Git - systemd.git/blob - src/libsystemd/sd-bus/test-bus-address.c
3 #include "bus-internal.h"
5 #include "string-util.h"
8 static void test_one_address(sd_bus
*b
,
10 int result
, const char *expected
) {
13 r
= bus_set_address_system_remote(b
, host
);
14 log_info("\"%s\" → %d, \"%s\"", host
, r
, strna(r
>= 0 ? b
->address
: NULL
));
15 if (result
< 0 || expected
) {
18 assert_se(streq(b
->address
, expected
));
22 static void test_bus_set_address_system_remote(char **args
) {
23 _cleanup_(sd_bus_unrefp
) sd_bus
*b
= NULL
;
25 assert_se(sd_bus_new(&b
) >= 0);
26 if (!strv_isempty(args
)) {
29 test_one_address(b
, *a
, 0, NULL
);
33 test_one_address(b
, "host",
34 0, "unixexec:path=ssh,argv1=-xT,argv2=--,argv3=host,argv4=systemd-stdio-bridge");
35 test_one_address(b
, "host:123",
36 0, "unixexec:path=ssh,argv1=-xT,argv2=-p,argv3=123,argv4=--,argv5=host,argv6=systemd-stdio-bridge");
37 test_one_address(b
, "host:123:123",
39 test_one_address(b
, "host:",
41 test_one_address(b
, "user@host",
42 0, "unixexec:path=ssh,argv1=-xT,argv2=--,argv3=user%40host,argv4=systemd-stdio-bridge");
43 test_one_address(b
, "user@host@host",
45 test_one_address(b
, "[::1]",
46 0, "unixexec:path=ssh,argv1=-xT,argv2=--,argv3=%3a%3a1,argv4=systemd-stdio-bridge");
47 test_one_address(b
, "user@[::1]",
48 0, "unixexec:path=ssh,argv1=-xT,argv2=--,argv3=user%40%3a%3a1,argv4=systemd-stdio-bridge");
49 test_one_address(b
, "user@[::1]:99",
50 0, "unixexec:path=ssh,argv1=-xT,argv2=-p,argv3=99,argv4=--,argv5=user%40%3a%3a1,argv6=systemd-stdio-bridge");
51 test_one_address(b
, "user@[::1]:",
53 test_one_address(b
, "user@[::1:",
55 test_one_address(b
, "user@",
57 test_one_address(b
, "user@@",
61 int main(int argc
, char *argv
[]) {
62 log_set_max_level(LOG_INFO
);
63 log_parse_environment();
66 test_bus_set_address_system_remote(argv
+ 1);