aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cryptomilk.org>2018-02-03 16:38:11 +0100
committerAndreas Schneider <asn@cryptomilk.org>2018-06-04 11:20:28 +0200
commita465ea2d49539af1d2575498a5ce45e51980d982 (patch)
treecaadcd85b183e93572804b94a56997c1826c215a /tests
parent702e9e8ad56491e3dda7fc215c8e2f4f139e2d2e (diff)
downloadlibssh-a465ea2d49539af1d2575498a5ce45e51980d982.tar.gz
libssh-a465ea2d49539af1d2575498a5ce45e51980d982.tar.xz
libssh-a465ea2d49539af1d2575498a5ce45e51980d982.zip
knownhosts: Add ssh_known_hosts_read_entries()
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/unittests/torture_knownhosts_parsing.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/unittests/torture_knownhosts_parsing.c b/tests/unittests/torture_knownhosts_parsing.c
index 8955c7e8..51d816f2 100644
--- a/tests/unittests/torture_knownhosts_parsing.c
+++ b/tests/unittests/torture_knownhosts_parsing.c
@@ -199,6 +199,33 @@ static void torture_knownhosts_parse_line_hashed_ed25519(void **state) {
SSH_KNOWNHOSTS_ENTRY_FREE(entry);
}
+static void torture_knownhosts_read_file(void **state)
+{
+ const char *knownhosts_file = *state;
+ struct ssh_list *entry_list = NULL;
+ struct ssh_iterator *it = NULL;
+ int rc;
+
+ rc = ssh_known_hosts_read_entries("localhost",
+ knownhosts_file,
+ &entry_list);
+ assert_int_equal(rc, SSH_OK);
+ assert_non_null(entry_list);
+ it = ssh_list_get_iterator(entry_list);
+ assert_non_null(it);
+ for (;it != NULL; it = it->next) {
+ struct ssh_knownhosts_entry *entry = NULL;
+ enum ssh_keytypes_e type;
+
+ entry = ssh_iterator_value(struct ssh_knownhosts_entry *, it);
+ assert_non_null(entry);
+
+ assert_string_equal(entry->hostname, "localhost");
+ type = ssh_key_type(entry->publickey);
+ assert_int_equal(type, SSH_KEYTYPE_ED25519);
+ }
+}
+
int torture_run_tests(void) {
int rc;
struct CMUnitTest tests[] = {
@@ -208,6 +235,9 @@ int torture_run_tests(void) {
cmocka_unit_test(torture_knownhosts_parse_line_port_ed25519),
cmocka_unit_test(torture_knownhosts_parse_line_pattern_ed25519),
cmocka_unit_test(torture_knownhosts_parse_line_hashed_ed25519),
+ cmocka_unit_test_setup_teardown(torture_knownhosts_read_file,
+ setup_knownhosts_file,
+ teardown_knownhosts_file),
};
ssh_init();