diff --git a/tests/torture.c b/tests/torture.c index 22854e8a..63bc4a81 100644 --- a/tests/torture.c +++ b/tests/torture.c @@ -1655,6 +1655,33 @@ void torture_reset_config(ssh_session session) memset(session->opts.options_seen, 0, sizeof(session->opts.options_seen)); } +void torture_unsetenv(const char *variable) +{ + int rc; +#ifdef WIN32 + rc = _putenv_s(variable, ""); +#else + rc = unsetenv(variable); +#endif // WIN32 + assert_return_code(rc, errno); +} + +void torture_setenv(const char *variable, const char *value) +{ + int rc; +#ifdef WIN32 + if (value != NULL) { + rc = _putenv_s(variable, value); + assert_return_code(rc, errno); + } else { + torture_unsetenv(variable); + } +#else + rc = setenv(variable, value, 1); + assert_return_code(rc, errno); +#endif // WIN32 +} + #if defined(HAVE_WEAK_ATTRIBUTE) && defined(TORTURE_SHARED) __attribute__((weak)) int torture_run_tests(void) { diff --git a/tests/torture.h b/tests/torture.h index cf947108..f8198452 100644 --- a/tests/torture.h +++ b/tests/torture.h @@ -165,4 +165,7 @@ char *torture_create_temp_file(const char *template); char *torture_get_current_working_dir(void); int torture_change_dir(char *path); +void torture_setenv(char const* variable, char const* value); +void torture_unsetenv(char const* variable); + #endif /* _TORTURE_H */