diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2014-06-10 13:52:20 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2014-06-10 13:52:20 +0200 |
commit | d9c47a8cfaedd51c24d95afba710e0e7f66b3c46 (patch) | |
tree | 7242450e4b6f54c4cd240b7b99837c3e973274e7 | |
parent | 987991a3f29aa29648b9b1cf84b1d533cd0baa0a (diff) | |
download | libssh-d9c47a8cfaedd51c24d95afba710e0e7f66b3c46.tar.gz libssh-d9c47a8cfaedd51c24d95afba710e0e7f66b3c46.tar.xz libssh-d9c47a8cfaedd51c24d95afba710e0e7f66b3c46.zip |
tests: Add test for the logging function.
-rw-r--r-- | tests/unittests/torture_callbacks.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/unittests/torture_callbacks.c b/tests/unittests/torture_callbacks.c index 97991899..3c836b79 100644 --- a/tests/unittests/torture_callbacks.c +++ b/tests/unittests/torture_callbacks.c @@ -57,11 +57,51 @@ static void torture_callbacks_exists(void **state) { assert_int_not_equal(ssh_callbacks_exists(cb, auth_function), 0); } +struct test_mock_state { + int executed; +}; + +static void test_mock_ssh_logging_callback(int priority, + const char *function, + const char *buffer, + void *userdata) +{ + struct test_mock_state *t = (struct test_mock_state *)userdata; + + check_expected(priority); + check_expected(function); + check_expected(buffer); + + t->executed++; +} + +static void torture_log_callback(void **state) +{ + struct test_mock_state t = { + .executed = 0, + }; + + (void)state; /* unused */ + + ssh_set_log_callback(test_mock_ssh_logging_callback); + ssh_set_log_userdata(&t); + ssh_set_log_level(1); + + expect_value(test_mock_ssh_logging_callback, priority, 1); + expect_string(test_mock_ssh_logging_callback, function, "torture_log_callback"); + expect_string(test_mock_ssh_logging_callback, buffer, "torture_log_callback: test"); + + SSH_LOG(SSH_LOG_WARN, "test"); + + assert_int_equal(t.executed, 1); +} + int torture_run_tests(void) { int rc; const UnitTest tests[] = { unit_test_setup_teardown(torture_callbacks_size, setup, teardown), unit_test_setup_teardown(torture_callbacks_exists, setup, teardown), + unit_test(torture_log_callback), }; ssh_init(); |