mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-26 10:03:40 +03:00
test-bus-address: a simple test for address parsing
This commit is contained in:
parent
2e6fe09002
commit
8a0c1913e0
69
src/libsystemd/sd-bus/test-bus-address.c
Normal file
69
src/libsystemd/sd-bus/test-bus-address.c
Normal file
@ -0,0 +1,69 @@
|
||||
#include "sd-bus.h"
|
||||
|
||||
#include "bus-internal.h"
|
||||
#include "log.h"
|
||||
#include "string-util.h"
|
||||
#include "strv.h"
|
||||
|
||||
static void test_one_address(sd_bus *b,
|
||||
const char *host,
|
||||
int result, const char *expected) {
|
||||
int r;
|
||||
|
||||
r = bus_set_address_system_remote(b, host);
|
||||
log_info("\"%s\" → %d, \"%s\"", host, r, strna(r >= 0 ? b->address : NULL));
|
||||
if (result < 0 || expected) {
|
||||
assert(r == result);
|
||||
if (r >= 0)
|
||||
assert_se(streq(b->address, expected));
|
||||
}
|
||||
}
|
||||
|
||||
static void test_bus_set_address_system_remote(char **args) {
|
||||
_cleanup_(sd_bus_unrefp) sd_bus *b = NULL;
|
||||
|
||||
assert_se(sd_bus_new(&b) >= 0);
|
||||
if (!strv_isempty(args)) {
|
||||
char **a;
|
||||
STRV_FOREACH(a, args)
|
||||
test_one_address(b, *a, 0, NULL);
|
||||
return;
|
||||
};
|
||||
|
||||
test_one_address(b, "host",
|
||||
0, "unixexec:path=ssh,argv1=-xT,argv2=--,argv3=host,argv4=systemd-stdio-bridge");
|
||||
test_one_address(b, "host:123",
|
||||
0, "unixexec:path=ssh,argv1=-xT,argv2=-p,argv3=123,argv4=--,argv5=host,argv6=systemd-stdio-bridge");
|
||||
test_one_address(b, "host:123:123",
|
||||
-EINVAL, NULL);
|
||||
// test_one_address(b, "host:",
|
||||
// -EINVAL, NULL);
|
||||
test_one_address(b, "user@host",
|
||||
0, "unixexec:path=ssh,argv1=-xT,argv2=--,argv3=user%40host,argv4=systemd-stdio-bridge");
|
||||
// test_one_address(b, "user@host@host",
|
||||
// -EINVAL, NULL);
|
||||
test_one_address(b, "[::1]",
|
||||
0, "unixexec:path=ssh,argv1=-xT,argv2=--,argv3=%3a%3a1,argv4=systemd-stdio-bridge");
|
||||
test_one_address(b, "user@[::1]",
|
||||
0, "unixexec:path=ssh,argv1=-xT,argv2=--,argv3=user%40%3a%3a1,argv4=systemd-stdio-bridge");
|
||||
test_one_address(b, "user@[::1]:99",
|
||||
0, "unixexec:path=ssh,argv1=-xT,argv2=-p,argv3=99,argv4=--,argv5=user%40%3a%3a1,argv6=systemd-stdio-bridge");
|
||||
//test_one_address(b, "user@[::1]:",
|
||||
// -EINVAL, NULL);
|
||||
test_one_address(b, "user@[::1:",
|
||||
-EINVAL, NULL);
|
||||
//test_one_address(b, "user@",
|
||||
// -EINVAL, NULL);
|
||||
//test_one_address(b, "user@@",
|
||||
// -EINVAL, NULL);
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
log_set_max_level(LOG_INFO);
|
||||
log_parse_environment();
|
||||
log_open();
|
||||
|
||||
test_bus_set_address_system_remote(argv + 1);
|
||||
|
||||
return 0;
|
||||
}
|
@ -782,6 +782,10 @@ tests += [
|
||||
############################################################
|
||||
|
||||
tests += [
|
||||
[['src/libsystemd/sd-bus/test-bus-address.c'],
|
||||
[],
|
||||
[threads]],
|
||||
|
||||
[['src/libsystemd/sd-bus/test-bus-marshal.c'],
|
||||
[],
|
||||
[threads,
|
||||
|
Loading…
x
Reference in New Issue
Block a user