From 7a523597ad8f5a95ad8769b6cfbc655c331ccf4a Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Tue, 15 Apr 2014 21:15:25 +0200 Subject: [PATCH] torture: Add server to get address and port. Signed-off-by: Andreas Schneider --- tests/torture.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ tests/torture.h | 3 +++ 2 files changed, 51 insertions(+) diff --git a/tests/torture.c b/tests/torture.c index 89206bbf..ef77c2f8 100644 --- a/tests/torture.c +++ b/tests/torture.c @@ -42,6 +42,11 @@ /* for pattern matching */ #include "match.c" +#define TORTURE_SSHD_SRV_IPV4 "127.0.0.10" +/* socket wrapper IPv6 prefix fd00::5357:5fxx */ +#define TORTURE_SSHD_SRV_IPV6 "fd00::5357:5f0a" +#define TORTURE_SSHD_SRV_PORT 22 + static const char torture_rsa_testkey[] = "-----BEGIN RSA PRIVATE KEY-----\n" "MIIEowIBAAKCAQEArAOREUWlBXJAKZ5hABYyxnRayDZP1bJeLbPVK+npxemrhHyZ\n" @@ -706,6 +711,49 @@ const char *torture_get_testkey_passphrase(void) return TORTURE_TESTKEY_PASSWORD; } +int torture_server_port(void) +{ + char *env = getenv("TORTURE_SERVER_PORT"); + + if (env != NULL && env[0] != '\0' && strlen(env) < 6) { + int port = atoi(env); + + if (port > 0 && port < 65536) { + return port; + } + } + + return TORTURE_SSHD_SRV_PORT; +} + +const char *torture_server_address(int family) +{ + switch (family) { + case AF_INET: { + const char *ip4 = getenv("TORTURE_SERVER_ADDRESS_IPV4"); + + if (ip4 != NULL && ip4[0] != '\0') { + return ip4; + } + + return TORTURE_SSHD_SRV_IPV4; + } + case AF_INET6: { + const char *ip6 = getenv("TORTURE_SERVER_ADDRESS_IPV6"); + + if (ip6 != NULL && ip6[0] != '\0') { + return ip6; + } + + return TORTURE_SSHD_SRV_IPV6; + } + default: + return NULL; + } + + return NULL; +} + int torture_libssh_verbosity(void){ return verbosity; } diff --git a/tests/torture.h b/tests/torture.h index 2c38212f..6b6e0cbf 100644 --- a/tests/torture.h +++ b/tests/torture.h @@ -94,6 +94,9 @@ void torture_write_file(const char *filename, const char *data); #define torture_filter_tests(tests) _torture_filter_tests(tests, sizeof(tests) / sizeof(tests)[0]) void _torture_filter_tests(struct CMUnitTest *tests, size_t ntests); +const char *torture_server_address(int domain); +int torture_server_port(void); + /* * This function must be defined in every unit test file. */