mirror of
https://git.libssh.org/projects/libssh.git
synced 2026-02-05 21:00:33 +09:00
torture: Add torture_setup_socket_dir().
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
This commit is contained in:
@@ -279,6 +279,10 @@ static const char torture_ed25519_testkey_pp[]=
|
|||||||
"Y3GsmYTDstmicanQ==\n"
|
"Y3GsmYTDstmicanQ==\n"
|
||||||
"-----END OPENSSH PRIVATE KEY-----\n";
|
"-----END OPENSSH PRIVATE KEY-----\n";
|
||||||
|
|
||||||
|
#define TORTURE_SOCKET_DIR "/tmp/test_socket_wrapper_XXXXXX"
|
||||||
|
#define TORTURE_SSHD_PIDFILE "sshd.pid"
|
||||||
|
#define TORTURE_PCAP_FILE "socket_trace.pcap"
|
||||||
|
|
||||||
static int verbosity = 0;
|
static int verbosity = 0;
|
||||||
static const char *pattern = NULL;
|
static const char *pattern = NULL;
|
||||||
|
|
||||||
@@ -754,6 +758,44 @@ const char *torture_server_address(int family)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void torture_setup_socket_dir(void **state)
|
||||||
|
{
|
||||||
|
struct torture_state *s;
|
||||||
|
const char *p;
|
||||||
|
size_t len;
|
||||||
|
|
||||||
|
s = malloc(sizeof(struct torture_state));
|
||||||
|
assert_non_null(s);
|
||||||
|
|
||||||
|
s->socket_dir = strdup(TORTURE_SOCKET_DIR);
|
||||||
|
assert_non_null(s->socket_dir);
|
||||||
|
|
||||||
|
p = mkdtemp(s->socket_dir);
|
||||||
|
assert_non_null(p);
|
||||||
|
|
||||||
|
/* pcap file */
|
||||||
|
len = strlen(p) + 1 + strlen(TORTURE_PCAP_FILE) + 1;
|
||||||
|
|
||||||
|
s->pcap_file = malloc(len);
|
||||||
|
assert_non_null(s->pcap_file);
|
||||||
|
|
||||||
|
snprintf(s->pcap_file, len, "%s/%s", p, TORTURE_PCAP_FILE);
|
||||||
|
|
||||||
|
/* pid file */
|
||||||
|
len = strlen(p) + 1 + strlen(TORTURE_SSHD_PIDFILE) + 1;
|
||||||
|
|
||||||
|
s->srv_pidfile = malloc(len);
|
||||||
|
assert_non_null(s->srv_pidfile);
|
||||||
|
|
||||||
|
snprintf(s->srv_pidfile, len, "%s/%s", p, TORTURE_SSHD_PIDFILE);
|
||||||
|
|
||||||
|
setenv("SOCKET_WRAPPER_DIR", p, 1);
|
||||||
|
setenv("SOCKET_WRAPPER_DEFAULT_IFACE", "170", 1);
|
||||||
|
setenv("SOCKET_WRAPPER_PCAP_FILE", s->pcap_file, 1);
|
||||||
|
|
||||||
|
*state = s;
|
||||||
|
}
|
||||||
|
|
||||||
int torture_libssh_verbosity(void){
|
int torture_libssh_verbosity(void){
|
||||||
return verbosity;
|
return verbosity;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,6 +60,16 @@ struct torture_sftp {
|
|||||||
char *testdir;
|
char *testdir;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct torture_state {
|
||||||
|
char *socket_dir;
|
||||||
|
char *pcap_file;
|
||||||
|
char *srv_pidfile;
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifndef ZERO_STRUCT
|
||||||
|
#define ZERO_STRUCT(x) memset((char *)&(x), 0, sizeof(x))
|
||||||
|
#endif
|
||||||
|
|
||||||
void torture_cmdline_parse(int argc, char **argv, struct argument_s *arguments);
|
void torture_cmdline_parse(int argc, char **argv, struct argument_s *arguments);
|
||||||
|
|
||||||
int torture_rmdirs(const char *path);
|
int torture_rmdirs(const char *path);
|
||||||
@@ -97,6 +107,8 @@ void _torture_filter_tests(struct CMUnitTest *tests, size_t ntests);
|
|||||||
const char *torture_server_address(int domain);
|
const char *torture_server_address(int domain);
|
||||||
int torture_server_port(void);
|
int torture_server_port(void);
|
||||||
|
|
||||||
|
void torture_setup_socket_dir(void **state);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This function must be defined in every unit test file.
|
* This function must be defined in every unit test file.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user