From cda41f7cb87c3af5258ba48ccef19d3efdbd3d3b Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Sun, 30 Apr 2023 00:03:16 +0000 Subject: [PATCH] tests: teach to use the `USERNAME` envvar on Windows Necessary to pick the correct local username when run on Windows. Cherry-picked from #1017 --- tests/session_fixture.c | 7 ++++++- tests/test_ssh2.c | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/tests/session_fixture.c b/tests/session_fixture.c index 922a442b..f17dbde6 100644 --- a/tests/session_fixture.c +++ b/tests/session_fixture.c @@ -438,8 +438,13 @@ int test_auth_pubkey(LIBSSH2_SESSION *session, int flags, const char *userauth_list; /* Ignore our hard-wired Dockerfile user when not running under Docker */ - if(!openssh_fixture_have_docker() && strcmp(username, "libssh2") == 0) + if(!openssh_fixture_have_docker() && strcmp(username, "libssh2") == 0) { username = getenv("USER"); +#ifdef WIN32 + if(!username) + username = getenv("USERNAME"); +#endif + } userauth_list = libssh2_userauth_list(session, username, (unsigned int)strlen(username)); diff --git a/tests/test_ssh2.c b/tests/test_ssh2.c index 3ac4d693..50ab5851 100644 --- a/tests/test_ssh2.c +++ b/tests/test_ssh2.c @@ -63,6 +63,10 @@ int main(int argc, char *argv[]) if(getenv("USER")) username = getenv("USER"); +#ifdef WIN32 + else if(getenv("USERNAME")) + username = getenv("USERNAME"); +#endif if(getenv("PRIVKEY")) privkey = getenv("PRIVKEY");