diff options
author | Nick Mathewson <nickm@torproject.org> | 2018-07-18 15:08:57 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2018-07-18 15:08:57 -0400 |
commit | a7bd20ebaf384111781277fcee66a7b0bb238f6d (patch) | |
tree | c3f85bc32f8a80c0acb13c1a8b15c6751af8977a /src/test | |
parent | 304ee896d16dcc058a92998133ee77be24bfa735 (diff) | |
parent | c31700d6640a10eb5e406205c2753e69efd217ec (diff) | |
download | tor-a7bd20ebaf384111781277fcee66a7b0bb238f6d.tar.gz tor-a7bd20ebaf384111781277fcee66a7b0bb238f6d.zip |
Merge branch 'maint-0.3.3' into maint-0.3.4
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/test_dir.c | 53 |
1 files changed, 52 insertions, 1 deletions
diff --git a/src/test/test_dir.c b/src/test/test_dir.c index b42755e351..37b015b72d 100644 --- a/src/test/test_dir.c +++ b/src/test/test_dir.c @@ -5956,6 +5956,57 @@ test_dir_networkstatus_consensus_has_ipv6(void *arg) UNMOCK(networkstatus_get_latest_consensus_by_flavor); } +static void +test_dir_format_versions_list(void *arg) +{ + (void)arg; + char *s = NULL; + config_line_t *lines = NULL; + + setup_capture_of_logs(LOG_WARN); + s = format_recommended_version_list(lines, 1); + tt_str_op(s, OP_EQ, ""); + + tor_free(s); + config_line_append(&lines, "ignored", "0.3.4.1, 0.2.9.111-alpha, 4.4.4-rc"); + s = format_recommended_version_list(lines, 1); + tt_str_op(s, OP_EQ, "0.2.9.111-alpha,0.3.4.1,4.4.4-rc"); + + tor_free(s); + config_line_append(&lines, "ignored", "0.1.2.3,0.2.9.10 "); + s = format_recommended_version_list(lines, 1); + tt_str_op(s, OP_EQ, "0.1.2.3,0.2.9.10,0.2.9.111-alpha,0.3.4.1,4.4.4-rc"); + + /* There should be no warnings so far. */ + expect_no_log_entry(); + + /* Now try a line with a space in it. */ + tor_free(s); + config_line_append(&lines, "ignored", "1.3.3.8 1.3.3.7"); + s = format_recommended_version_list(lines, 1); + tt_str_op(s, OP_EQ, "0.1.2.3,0.2.9.10,0.2.9.111-alpha,0.3.4.1," + "1.3.3.7,1.3.3.8,4.4.4-rc"); + + expect_single_log_msg_containing( + "Unexpected space in versions list member \"1.3.3.8 1.3.3.7\"." ); + + /* Start over, with a line containing a bogus version */ + config_free_lines(lines); + lines = NULL; + tor_free(s); + mock_clean_saved_logs(); + config_line_append(&lines, "ignored", "0.1.2.3, alpha-complex, 0.1.1.8-rc"); + s = format_recommended_version_list(lines,1); + tt_str_op(s, OP_EQ, "0.1.1.8-rc,0.1.2.3,alpha-complex"); + expect_single_log_msg_containing( + "Recommended version \"alpha-complex\" does not look valid."); + + done: + tor_free(s); + config_free_lines(lines); + teardown_capture_of_logs(); +} + #define DIR_LEGACY(name) \ { #name, test_dir_ ## name , TT_FORK, NULL, NULL } @@ -6026,6 +6077,6 @@ struct testcase_t dir_tests[] = { DIR(networkstatus_compute_bw_weights_v10, 0), DIR(platform_str, 0), DIR(networkstatus_consensus_has_ipv6, TT_FORK), + DIR(format_versions_list, TT_FORK), END_OF_TESTCASES }; - |