mirror of
https://github.com/libssh2/libssh2.git
synced 2025-07-31 00:03:08 +03:00
This introduces a test suite for libssh2. It runs OpenSSH in a Docker container because that works well on Windows (via docker-machine) as well as Linux. Presumably it works on Mac too with docker-machine, but I've not tested that. Because the test suite is docker-machine aware, you can also run it against a cloud provider, for more realistic network testing, by setting your cloud provider as your active docker machine. The Appveyor CI setup in this commit does that because Appveyor doesn't support docker locally.
37 lines
987 B
C
37 lines
987 B
C
#include "session_fixture.h"
|
|
|
|
#include <libssh2.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
const char *PASSWORD = "my test password"; /* configured in Dockerfile */
|
|
const char *WRONG_USERNAME = "i dont exist";
|
|
|
|
int test(LIBSSH2_SESSION *session)
|
|
{
|
|
int rc;
|
|
|
|
const char *userauth_list =
|
|
libssh2_userauth_list(session, WRONG_USERNAME, strlen(WRONG_USERNAME));
|
|
if (userauth_list == NULL) {
|
|
print_last_session_error("libssh2_userauth_list");
|
|
return 1;
|
|
}
|
|
|
|
if (strstr(userauth_list, "password") == NULL) {
|
|
fprintf(stderr, "'password' was expected in userauth list: %s\n",
|
|
userauth_list);
|
|
return 1;
|
|
}
|
|
|
|
rc = libssh2_userauth_password_ex(session, WRONG_USERNAME,
|
|
strlen(WRONG_USERNAME), PASSWORD,
|
|
strlen(PASSWORD), NULL);
|
|
if (rc == 0) {
|
|
fprintf(stderr, "Password auth succeeded with wrong username\n");
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|