From: Nick Mathewson Date: Wed, 6 Jul 2016 17:01:08 +0000 (-0400) Subject: Capture the LOG_ERR messages in our tests that had logged errors. X-Git-Tag: tor-0.2.9.1-alpha~61 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=08cc0ef8320e614c1a33ea5e70bef4f5809981f2;p=thirdparty%2Ftor.git Capture the LOG_ERR messages in our tests that had logged errors. (It's confusing for the test to write an expected error to stdout, and then tell the user "OK".) --- diff --git a/src/test/test_address.c b/src/test/test_address.c index 3e5af56c52..d621ee5870 100644 --- a/src/test/test_address.c +++ b/src/test/test_address.c @@ -26,6 +26,7 @@ #include "or.h" #include "address.h" #include "test.h" +#include "log_test_helpers.h" /** Return 1 iff sockaddr1 and sockaddr2 represent * the same IP address and port combination. Otherwise, return 0. @@ -822,7 +823,10 @@ test_address_get_if_addrs6_list_no_internal(void *arg) (void)arg; + int prev_level = setup_capture_of_logs(LOG_ERR); /* We might drop a log_err */ results = get_interface_address6_list(LOG_ERR, AF_INET6, 0); + tt_int_op(smartlist_len(mock_saved_logs()), OP_LE, 1); + teardown_capture_of_logs(prev_level); tt_assert(results != NULL); /* Work even on systems without IPv6 interfaces */ @@ -1110,7 +1114,7 @@ struct testcase_t address_tests[] = { ADDRESS_TEST(get_if_addrs_list_internal, 0), ADDRESS_TEST(get_if_addrs_list_no_internal, 0), ADDRESS_TEST(get_if_addrs6_list_internal, 0), - ADDRESS_TEST(get_if_addrs6_list_no_internal, 0), + ADDRESS_TEST(get_if_addrs6_list_no_internal, TT_FORK), ADDRESS_TEST(get_if_addrs_internal_fail, 0), ADDRESS_TEST(get_if_addrs_no_internal_fail, 0), ADDRESS_TEST(get_if_addrs, 0), diff --git a/src/test/test_util.c b/src/test/test_util.c index c331a662a5..19763fb737 100644 --- a/src/test/test_util.c +++ b/src/test/test_util.c @@ -13,6 +13,7 @@ #include "test.h" #include "memarea.h" #include "util_process.h" +#include "log_test_helpers.h" #ifdef HAVE_PWD_H #include @@ -5187,6 +5188,7 @@ test_util_pwdb(void *arg) const struct passwd *me = NULL, *me2, *me3; char *name = NULL; char *dir = NULL; + int prev_level = -100; /* Uncached case. */ /* Let's assume that we exist. */ @@ -5225,8 +5227,13 @@ test_util_pwdb(void *arg) } tt_assert(found); tor_free(dir); + + prev_level = setup_capture_of_logs(LOG_ERR); /* We should do a LOG_ERR */ dir = get_user_homedir(badname); tt_assert(dir == NULL); + tt_int_op(smartlist_len(mock_saved_logs()), OP_EQ, 1); + teardown_capture_of_logs(prev_level); + prev_level = -100; /* Now try to find a user that doesn't exist by ID. */ found = 0; @@ -5243,6 +5250,8 @@ test_util_pwdb(void *arg) done: tor_free(name); tor_free(dir); + if (prev_level >= 0) + teardown_capture_of_logs(prev_level); } #endif