aboutsummaryrefslogtreecommitdiff
path: root/tests/unittests/torture_knownhosts_parsing.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unittests/torture_knownhosts_parsing.c')
-rw-r--r--tests/unittests/torture_knownhosts_parsing.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/unittests/torture_knownhosts_parsing.c b/tests/unittests/torture_knownhosts_parsing.c
index 51d816f2..05fef4df 100644
--- a/tests/unittests/torture_knownhosts_parsing.c
+++ b/tests/unittests/torture_knownhosts_parsing.c
@@ -226,6 +226,29 @@ static void torture_knownhosts_read_file(void **state)
}
}
+static void torture_knownhosts_host_exists(void **state)
+{
+ const char *knownhosts_file = *state;
+ enum ssh_known_hosts_e found;
+ ssh_session session;
+
+ session = ssh_new();
+ assert_non_null(session);
+
+ ssh_options_set(session, SSH_OPTIONS_HOST, "localhost");
+ ssh_options_set(session, SSH_OPTIONS_KNOWNHOSTS, knownhosts_file);
+
+ found = ssh_session_has_known_hosts_entry(session);
+ assert_int_equal(found, SSH_KNOWN_HOSTS_OK);
+ assert_true(found == SSH_KNOWN_HOSTS_OK);
+
+ ssh_options_set(session, SSH_OPTIONS_HOST, "wurstbrot");
+ found = ssh_session_has_known_hosts_entry(session);
+ assert_true(found == SSH_KNOWN_HOSTS_NOT_FOUND);
+
+ ssh_free(session);
+}
+
int torture_run_tests(void) {
int rc;
struct CMUnitTest tests[] = {
@@ -238,6 +261,9 @@ int torture_run_tests(void) {
cmocka_unit_test_setup_teardown(torture_knownhosts_read_file,
setup_knownhosts_file,
teardown_knownhosts_file),
+ cmocka_unit_test_setup_teardown(torture_knownhosts_host_exists,
+ setup_knownhosts_file,
+ teardown_knownhosts_file),
};
ssh_init();