mirror of
https://github.com/systemd/systemd.git
synced 2025-03-02 12:58:35 +03:00
test-varlink: add superficial test that validates varlink/errno translation both ways
This commit is contained in:
parent
f249cc7618
commit
ed70124b2c
@ -153,6 +153,16 @@ static int method_passfd(sd_varlink *link, sd_json_variant *parameters, sd_varli
|
||||
return sd_varlink_reply(link, ret);
|
||||
}
|
||||
|
||||
static int method_fail_with_errno(sd_varlink *link, sd_json_variant *parameters, sd_varlink_method_flags_t flags, void *userdata) {
|
||||
int r;
|
||||
|
||||
r = sd_varlink_dispatch(link, parameters, NULL, NULL);
|
||||
if (r != 0)
|
||||
return r;
|
||||
|
||||
return sd_varlink_error_errno(link, EHWPOISON);
|
||||
}
|
||||
|
||||
static int method_done(sd_varlink *link, sd_json_variant *parameters, sd_varlink_method_flags_t flags, void *userdata) {
|
||||
|
||||
if (++n_done == 2)
|
||||
@ -315,6 +325,8 @@ static void *thread(void *arg) {
|
||||
ASSERT_STREQ(sd_json_variant_string(sd_json_variant_by_key(o, "method")), "io.test.IDontExist");
|
||||
ASSERT_STREQ(e, SD_VARLINK_ERROR_METHOD_NOT_FOUND);
|
||||
|
||||
ASSERT_OK(sd_varlink_call(c, "io.test.FailWithErrno", NULL, &o, &e));
|
||||
ASSERT_ERROR(sd_varlink_error_to_errno(e, o), EHWPOISON);
|
||||
flood_test(arg);
|
||||
|
||||
assert_se(sd_varlink_send(c, "io.test.Done", NULL) >= 0);
|
||||
@ -368,6 +380,7 @@ TEST(chat) {
|
||||
assert_se(sd_varlink_server_bind_method(s, "io.test.PassFD", method_passfd) >= 0);
|
||||
assert_se(sd_varlink_server_bind_method(s, "io.test.DoSomething", method_something) >= 0);
|
||||
assert_se(sd_varlink_server_bind_method(s, "io.test.DoSomethingMore", method_something_more) >= 0);
|
||||
assert_se(sd_varlink_server_bind_method(s, "io.test.FailWithErrno", method_fail_with_errno) >= 0);
|
||||
assert_se(sd_varlink_server_bind_method(s, "io.test.Done", method_done) >= 0);
|
||||
assert_se(sd_varlink_server_bind_connect(s, on_connect) >= 0);
|
||||
assert_se(sd_varlink_server_listen_address(s, sp, 0600) >= 0);
|
||||
|
Loading…
x
Reference in New Issue
Block a user