mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-24 22:58:50 +01:00
test: Implement haproxy
This commit is contained in:
parent
119004e87d
commit
41b9dca07b
4 changed files with 69 additions and 0 deletions
|
@ -182,6 +182,7 @@ src_test_test_SOURCES += \
|
|||
src/test/test_process_descs.c \
|
||||
src/test/test_prob_distr.c \
|
||||
src/test/test_procmon.c \
|
||||
src/test/test_proto_haproxy.c \
|
||||
src/test/test_proto_http.c \
|
||||
src/test/test_proto_misc.c \
|
||||
src/test/test_protover.c \
|
||||
|
|
|
@ -899,6 +899,7 @@ struct testgroup_t testgroups[] = {
|
|||
{ "prob_distr/", prob_distr_tests },
|
||||
{ "procmon/", procmon_tests },
|
||||
{ "process/", process_tests },
|
||||
{ "proto/haproxy/", proto_haproxy_tests },
|
||||
{ "proto/http/", proto_http_tests },
|
||||
{ "proto/misc/", proto_misc_tests },
|
||||
{ "protover/", protover_tests },
|
||||
|
|
|
@ -254,6 +254,7 @@ extern struct testcase_t slow_stochastic_prob_distr_tests[];
|
|||
extern struct testcase_t procmon_tests[];
|
||||
extern struct testcase_t process_tests[];
|
||||
extern struct testcase_t process_descs_tests[];
|
||||
extern struct testcase_t proto_haproxy_tests[];
|
||||
extern struct testcase_t proto_http_tests[];
|
||||
extern struct testcase_t proto_misc_tests[];
|
||||
extern struct testcase_t protover_tests[];
|
||||
|
|
66
src/test/test_proto_haproxy.c
Normal file
66
src/test/test_proto_haproxy.c
Normal file
|
@ -0,0 +1,66 @@
|
|||
/* Copyright (c) 2019, The Tor Project, Inc. */
|
||||
/* See LICENSE for licensing information */
|
||||
|
||||
/**
|
||||
* \file test_proto_haproxy.c
|
||||
* \brief Tests for our HAProxy protocol parser code
|
||||
*/
|
||||
|
||||
#define PROTO_HAPROXY_PRIVATE
|
||||
|
||||
#include "test/test.h"
|
||||
#include "core/proto/proto_haproxy.h"
|
||||
#include "test/log_test_helpers.h"
|
||||
|
||||
static void
|
||||
test_format_proxy_header_line(void *arg)
|
||||
{
|
||||
tor_addr_t addr;
|
||||
tor_addr_port_t *addr_port = NULL;
|
||||
char *output = NULL;
|
||||
|
||||
(void) arg;
|
||||
|
||||
/* IPv4 address. */
|
||||
tor_addr_parse(&addr, "192.168.1.2");
|
||||
addr_port = tor_addr_port_new(&addr, 8000);
|
||||
output = haproxy_format_proxy_header_line(addr_port);
|
||||
|
||||
tt_str_op(output, OP_EQ, "PROXY TCP4 0.0.0.0 192.168.1.2 0 8000\r\n");
|
||||
|
||||
tor_free(addr_port);
|
||||
tor_free(output);
|
||||
|
||||
/* IPv6 address. */
|
||||
tor_addr_parse(&addr, "123:45:6789::5005:11");
|
||||
addr_port = tor_addr_port_new(&addr, 8000);
|
||||
output = haproxy_format_proxy_header_line(addr_port);
|
||||
|
||||
tt_str_op(output, OP_EQ, "PROXY TCP6 :: 123:45:6789::5005:11 0 8000\r\n");
|
||||
|
||||
tor_free(addr_port);
|
||||
tor_free(output);
|
||||
|
||||
/* UNIX socket address. */
|
||||
memset(&addr, 0, sizeof(addr));
|
||||
addr.family = AF_UNIX;
|
||||
addr_port = tor_addr_port_new(&addr, 8000);
|
||||
output = haproxy_format_proxy_header_line(addr_port);
|
||||
|
||||
/* If it's not an IPv4 or IPv6 address, haproxy_format_proxy_header_line
|
||||
* must return NULL. */
|
||||
tt_ptr_op(output, OP_EQ, NULL);
|
||||
|
||||
tor_free(addr_port);
|
||||
tor_free(output);
|
||||
|
||||
done:
|
||||
tor_free(addr_port);
|
||||
tor_free(output);
|
||||
}
|
||||
|
||||
struct testcase_t proto_haproxy_tests[] = {
|
||||
{ "format_proxy_header_line", test_format_proxy_header_line, 0, NULL, NULL },
|
||||
|
||||
END_OF_TESTCASES
|
||||
};
|
Loading…
Add table
Reference in a new issue