commit 08cc0ef8320e614c1a33ea5e70bef4f5809981f2 Author: Nick Mathewson nickm@torproject.org Date: Wed Jul 6 13:01:08 2016 -0400
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".) --- src/test/test_address.c | 6 +++++- src/test/test_util.c | 9 +++++++++ 2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/src/test/test_address.c b/src/test/test_address.c index 3e5af56..d621ee5 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 <b>sockaddr1</b> and <b>sockaddr2</b> 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 c331a66..19763fb 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 <pwd.h> @@ -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
tor-commits@lists.torproject.org