mirror of
https://git.libssh.org/projects/libssh.git
synced 2026-02-09 18:04:25 +09:00
tests: Reproducer for usage of NULL sshdir
Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
This commit is contained in:
@@ -327,6 +327,21 @@ static int setup(void **state)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int setup_no_sshdir(void **state)
|
||||||
|
{
|
||||||
|
ssh_session session = NULL;
|
||||||
|
int verbosity;
|
||||||
|
|
||||||
|
session = ssh_new();
|
||||||
|
|
||||||
|
verbosity = torture_libssh_verbosity();
|
||||||
|
ssh_options_set(session, SSH_OPTIONS_LOG_VERBOSITY, &verbosity);
|
||||||
|
|
||||||
|
*state = session;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int teardown(void **state)
|
static int teardown(void **state)
|
||||||
{
|
{
|
||||||
ssh_free(*state);
|
ssh_free(*state);
|
||||||
@@ -1666,7 +1681,7 @@ static void torture_config_identity(void **state)
|
|||||||
|
|
||||||
/* Make absolute path for config include
|
/* Make absolute path for config include
|
||||||
*/
|
*/
|
||||||
static void torture_config_make_absolute(void **state)
|
static void torture_config_make_absolute_int(void **state, bool no_sshdir_fails)
|
||||||
{
|
{
|
||||||
ssh_session session = *state;
|
ssh_session session = *state;
|
||||||
char *result = NULL;
|
char *result = NULL;
|
||||||
@@ -1687,6 +1702,16 @@ static void torture_config_make_absolute(void **state)
|
|||||||
assert_string_equal(result, "/etc/ssh/./ssh_config.d/test.conf");
|
assert_string_equal(result, "/etc/ssh/./ssh_config.d/test.conf");
|
||||||
free(result);
|
free(result);
|
||||||
|
|
||||||
|
/* User config is relative to sshdir -- here faked to /tmp/ssh/ */
|
||||||
|
result = ssh_config_make_absolute(session, "my_config", 0);
|
||||||
|
if (no_sshdir_fails) {
|
||||||
|
assert_null(result);
|
||||||
|
} else {
|
||||||
|
/* The path depends on the PWD so lets skip checking the actual path here */
|
||||||
|
assert_non_null(result);
|
||||||
|
}
|
||||||
|
free(result);
|
||||||
|
|
||||||
/* User config is relative to sshdir -- here faked to /tmp/ssh/ */
|
/* User config is relative to sshdir -- here faked to /tmp/ssh/ */
|
||||||
ssh_options_set(session, SSH_OPTIONS_SSH_DIR, "/tmp/ssh");
|
ssh_options_set(session, SSH_OPTIONS_SSH_DIR, "/tmp/ssh");
|
||||||
result = ssh_config_make_absolute(session, "my_config", 0);
|
result = ssh_config_make_absolute(session, "my_config", 0);
|
||||||
@@ -1694,6 +1719,15 @@ static void torture_config_make_absolute(void **state)
|
|||||||
free(result);
|
free(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void torture_config_make_absolute(void **state)
|
||||||
|
{
|
||||||
|
torture_config_make_absolute_int(state, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void torture_config_make_absolute_no_sshdir(void **state)
|
||||||
|
{
|
||||||
|
torture_config_make_absolute_int(state, 1);
|
||||||
|
}
|
||||||
|
|
||||||
int torture_run_tests(void)
|
int torture_run_tests(void)
|
||||||
{
|
{
|
||||||
@@ -1761,6 +1795,8 @@ int torture_run_tests(void)
|
|||||||
setup, teardown),
|
setup, teardown),
|
||||||
cmocka_unit_test_setup_teardown(torture_config_make_absolute,
|
cmocka_unit_test_setup_teardown(torture_config_make_absolute,
|
||||||
setup, teardown),
|
setup, teardown),
|
||||||
|
cmocka_unit_test_setup_teardown(torture_config_make_absolute_no_sshdir,
|
||||||
|
setup_no_sshdir, teardown),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user