diff options
author | Nick Mathewson <nickm@torproject.org> | 2018-07-18 15:03:27 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2018-07-18 15:03:27 -0400 |
commit | 559f79fd79b7c22caac2888f82e92307be02904a (patch) | |
tree | 47ffacb2d47ce8dbe0c9dfc997520190e31489ad /src/test | |
parent | 61a2762e353f29b8b4402bf068e6268809174702 (diff) | |
parent | a321d72401348cc3c8a5c3e86b2506c5c2278acd (diff) | |
download | tor-559f79fd79b7c22caac2888f82e92307be02904a.tar.gz tor-559f79fd79b7c22caac2888f82e92307be02904a.zip |
Merge branch 'maint-0.2.9' into maint-0.3.2
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 b21ce5048c..28489d9392 100644 --- a/src/test/test_dir.c +++ b/src/test/test_dir.c @@ -6193,6 +6193,57 @@ test_dir_platform_str(void *arg) ; } +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 } @@ -6261,6 +6312,6 @@ struct testcase_t dir_tests[] = { DIR(assumed_flags, 0), DIR(networkstatus_compute_bw_weights_v10, 0), DIR(platform_str, 0), + DIR(format_versions_list, TT_FORK), END_OF_TESTCASES }; - |