Skip to content

Commit 269cf24

Browse files
ozgengreenbonebot
authored andcommitted
test: add coverage for Unix socket connector handling
1 parent 1582a04 commit 269cf24

2 files changed

Lines changed: 47 additions & 5 deletions

File tree

agent_controller/agent_controller.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ struct agent_controller_connector
4747
gchar *host; /**< Agent controller hostname or IP. */
4848
gint port; /**< Port number of agent controller (default 8080?). */
4949
gchar *protocol; /**< "http" or "https". */
50-
gchar *unix_socket_path; /**< "unix domain socket path". */
50+
gchar *unix_socket_path; /**< Unix domain socket path. */
5151
};
5252

5353
/**

agent_controller/agent_controller_tests.c

Lines changed: 46 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,17 +55,19 @@ gvm_http_add_header (gvm_http_headers_t *headers, const gchar *header)
5555
}
5656

5757
gvm_http_response_t *
58-
gvm_http_request (const gchar *url, gvm_http_method_t method,
59-
const gchar *payload, gvm_http_headers_t *headers,
60-
const gchar *ca_cert, const gchar *cert, const gchar *key,
61-
gvm_http_response_stream_t stream)
58+
gvm_http_request_unix (const gchar *url, gvm_http_method_t method,
59+
const gchar *payload, gvm_http_headers_t *headers,
60+
const gchar *ca_cert, const gchar *cert,
61+
const gchar *key, const gchar *sock_path,
62+
gvm_http_response_stream_t stream)
6263
{
6364
(void) headers;
6465
(void) ca_cert;
6566
(void) cert;
6667
(void) key;
6768
(void) stream;
6869
(void) method;
70+
(void) sock_path;
6971

7072
last_sent_url = g_strdup (url);
7173
last_sent_payload = g_strdup (payload);
@@ -202,6 +204,7 @@ Ensure (agent_controller, connector_free_safely)
202204
const char *apikey = "apikey123";
203205
const char *protocol = "https";
204206
const char *host = "localhost";
207+
const char *socket_path = "/tmp/test.sock";
205208
int port = 8443;
206209

207210
agent_controller_connector_builder (conn, AGENT_CONTROLLER_CA_CERT, ca_cert);
@@ -212,6 +215,8 @@ Ensure (agent_controller, connector_free_safely)
212215
protocol);
213216
agent_controller_connector_builder (conn, AGENT_CONTROLLER_HOST, host);
214217
agent_controller_connector_builder (conn, AGENT_CONTROLLER_PORT, &port);
218+
agent_controller_connector_builder (conn, AGENT_CONTROLLER_UNIX_SOCKET_PATH,
219+
&socket_path);
215220

216221
agent_controller_connector_free (conn);
217222
assert_that (true, is_true);
@@ -227,6 +232,7 @@ Ensure (agent_controller, connector_builder_all_valid_fields)
227232
const char *apikey = "123abc";
228233
const char *protocol = "https";
229234
const char *host = "127.0.0.1";
235+
const char *socket_path = "/tmp/test.sock";
230236
int port = 8443;
231237

232238
assert_that (agent_controller_connector_builder (
@@ -264,6 +270,11 @@ Ensure (agent_controller, connector_builder_all_valid_fields)
264270
is_equal_to (AGENT_CONTROLLER_OK));
265271
assert_that (conn->port, is_equal_to (port));
266272

273+
assert_that (agent_controller_connector_builder (
274+
conn, AGENT_CONTROLLER_UNIX_SOCKET_PATH, socket_path),
275+
is_equal_to (AGENT_CONTROLLER_OK));
276+
assert_that (conn->unix_socket_path, is_equal_to_string (socket_path));
277+
267278
agent_controller_connector_free (conn);
268279
}
269280

@@ -488,6 +499,34 @@ Ensure (agent_controller, send_request_returns_null_if_conn_is_null)
488499
assert_that (resp, is_null);
489500
}
490501

502+
Ensure (agent_controller,
503+
send_request_builds_url_with_socket_and_calls_http_request)
504+
{
505+
agent_controller_connector_t conn = agent_controller_connector_new ();
506+
conn->protocol = g_strdup ("https");
507+
conn->host = g_strdup ("localhost");
508+
conn->port = 8080;
509+
conn->ca_cert = g_strdup ("ca.pem");
510+
conn->cert = g_strdup ("cert.pem");
511+
conn->key = g_strdup ("key.pem");
512+
conn->unix_socket_path = g_strdup ("/tmp/test.sock");
513+
514+
const gchar *path = "/api/v1/test";
515+
const gchar *token = "mytoken";
516+
const gchar *payload = "{\"key\":\"value\"}";
517+
518+
gvm_http_response_t *resp =
519+
agent_controller_send_request (conn, POST, path, payload, token);
520+
521+
assert_that (resp, is_not_null);
522+
assert_that (last_sent_url,
523+
is_equal_to_string ("http://127.0.0.1/api/v1/test"));
524+
assert_that (last_sent_payload, is_equal_to_string (payload));
525+
526+
gvm_http_response_free (resp);
527+
agent_controller_connector_free (conn);
528+
}
529+
491530
Ensure (agent_controller, send_request_returns_null_if_protocol_missing)
492531
{
493532
agent_controller_connector_t conn = agent_controller_connector_new ();
@@ -2991,6 +3030,9 @@ main (int argc, char **argv)
29913030
send_request_builds_url_and_calls_http_request);
29923031
add_test_with_context (suite, agent_controller,
29933032
send_request_returns_null_if_conn_is_null);
3033+
add_test_with_context (
3034+
suite, agent_controller,
3035+
send_request_builds_url_with_socket_and_calls_http_request);
29943036
add_test_with_context (suite, agent_controller,
29953037
send_request_returns_null_if_protocol_missing);
29963038
add_test_with_context (suite, agent_controller,

0 commit comments

Comments
 (0)