torture: Added a function to setup a sftp session.
Этот коммит содержится в:
родитель
215c41710e
Коммит
38d6d38c1f
@ -198,6 +198,66 @@ failed:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct torture_sftp *torture_sftp_session(ssh_session session) {
|
||||
struct torture_sftp *t;
|
||||
char template[] = "/tmp/ssh_torture_XXXXXX";
|
||||
char *p;
|
||||
|
||||
if (session == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
t = malloc(sizeof(struct torture_sftp *));
|
||||
if (t == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
t->ssh = session;
|
||||
t->sftp = sftp_new(session);
|
||||
if (t->sftp == NULL) {
|
||||
goto failed;
|
||||
}
|
||||
|
||||
|
||||
p = mkdtemp(template);
|
||||
if (p == NULL) {
|
||||
goto failed;
|
||||
}
|
||||
t->testdir = strdup(p);
|
||||
if (t->testdir == NULL) {
|
||||
goto failed;
|
||||
}
|
||||
|
||||
return t;
|
||||
failed:
|
||||
if (t->sftp != NULL) {
|
||||
sftp_free(t->sftp);
|
||||
}
|
||||
ssh_disconnect(t->ssh);
|
||||
ssh_free(t->ssh);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void torture_sftp_close(struct torture_sftp *t) {
|
||||
if (t == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (t->sftp != NULL) {
|
||||
sftp_free(t->sftp);
|
||||
}
|
||||
|
||||
if (t->ssh != NULL) {
|
||||
if (ssh_is_connected(t->ssh)) {
|
||||
ssh_disconnect(t->ssh);
|
||||
}
|
||||
}
|
||||
|
||||
free(t->testdir);
|
||||
free(t);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
struct argument_s arguments;
|
||||
|
||||
|
@ -44,6 +44,12 @@ struct argument_s {
|
||||
int verbose;
|
||||
};
|
||||
|
||||
struct torture_sftp {
|
||||
ssh_session ssh;
|
||||
sftp_session sftp;
|
||||
char *testdir;
|
||||
};
|
||||
|
||||
void torture_cmdline_parse(int argc, char **argv, struct argument_s *arguments);
|
||||
|
||||
int torture_rmdirs(const char *path);
|
||||
@ -58,6 +64,9 @@ ssh_session torture_ssh_session(const char *host,
|
||||
const char *user,
|
||||
const char *password);
|
||||
|
||||
struct torture_sftp *torture_sftp_session(ssh_session session);
|
||||
void torture_sftp_close(struct torture_sftp *t);
|
||||
|
||||
/*
|
||||
* This function must be defined in every unit test file.
|
||||
*/
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user