diff options
author | Matt Traudt <sirmatt@ksu.edu> | 2016-10-09 15:41:08 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2016-10-26 16:37:16 -0400 |
commit | 6629c5c3fe16abc516660d53e50628a019047e14 (patch) | |
tree | e38094f910a2d1cb4622dcb5133fa08c65ca4c35 /src/test/test_dir.c | |
parent | 7ba0ae942638794c4c1e80e0ff3fb9eca514839c (diff) | |
download | tor-6629c5c3fe16abc516660d53e50628a019047e14.tar.gz tor-6629c5c3fe16abc516660d53e50628a019047e14.zip |
Add historic bwweight tests, comments, line len fixes
Diffstat (limited to 'src/test/test_dir.c')
-rw-r--r-- | src/test/test_dir.c | 136 |
1 files changed, 104 insertions, 32 deletions
diff --git a/src/test/test_dir.c b/src/test/test_dir.c index 08bceaec21..788ec617ff 100644 --- a/src/test/test_dir.c +++ b/src/test/test_dir.c @@ -1886,7 +1886,8 @@ test_dir_networkstatus_compute_bw_weights_v10(void *arg) /* no case. one or more of the values is 0 */ G = M = E = D = 0; T = G + M + E + D; - ret = networkstatus_compute_bw_weights_v10(chunks, G, M, E, D, T, weight_scale); + ret = networkstatus_compute_bw_weights_v10(chunks, G, M, E, D, T, + weight_scale); tt_int_op(ret, OP_EQ, 0); tt_int_op(smartlist_len(chunks), OP_EQ, 0); @@ -1896,13 +1897,14 @@ test_dir_networkstatus_compute_bw_weights_v10(void *arg) G = E = 10; M = D = 1; T = G + M + E + D; - ret = networkstatus_compute_bw_weights_v10(chunks, G, M, E, D, T, weight_scale); + ret = networkstatus_compute_bw_weights_v10(chunks, G, M, E, D, T, + weight_scale); tt_int_op(ret, OP_EQ, 1); tt_int_op(smartlist_len(chunks), OP_EQ, 1); tt_str_op(smartlist_get(chunks, 0), OP_EQ, "bandwidth-weights Wbd=3333 " "Wbe=3000 Wbg=3000 Wbm=10000 Wdb=10000 Web=10000 Wed=3333 Wee=7000 " - "Weg=3333 Wem=7000 Wgb=10000 Wgd=3333 Wgg=7000 Wgm=7000 Wmb=10000 Wmd=3333 " - "Wme=3000 Wmg=3000 Wmm=10000\n"); + "Weg=3333 Wem=7000 Wgb=10000 Wgd=3333 Wgg=7000 Wgm=7000 Wmb=10000 " + "Wmd=3333 Wme=3000 Wmg=3000 Wmm=10000\n"); smartlist_clear(chunks); /* case 2a E scarce */ @@ -1910,12 +1912,13 @@ test_dir_networkstatus_compute_bw_weights_v10(void *arg) G = 20; E = D = 5; T = G + M + E + D; - ret = networkstatus_compute_bw_weights_v10(chunks, G, M, E, D, T, weight_scale); + ret = networkstatus_compute_bw_weights_v10(chunks, G, M, E, D, T, + weight_scale); tt_int_op(ret, OP_EQ, 1); tt_str_op(smartlist_get(chunks, 0), OP_EQ, "bandwidth-weights Wbd=0 Wbe=0 " "Wbg=0 Wbm=10000 Wdb=10000 Web=10000 Wed=10000 Wee=10000 Weg=10000 " - "Wem=10000 Wgb=10000 Wgd=0 Wgg=10000 Wgm=10000 Wmb=10000 Wmd=0 Wme=0 Wmg=0 " - "Wmm=10000\n"); + "Wem=10000 Wgb=10000 Wgd=0 Wgg=10000 Wgm=10000 Wmb=10000 Wmd=0 Wme=0 " + "Wmg=0 Wmm=10000\n"); smartlist_clear(chunks); /* case 2a G scarce */ @@ -1923,7 +1926,8 @@ test_dir_networkstatus_compute_bw_weights_v10(void *arg) E = 20; G = D = 5; T = G + M + E + D; - ret = networkstatus_compute_bw_weights_v10(chunks, G, M, E, D, T, weight_scale); + ret = networkstatus_compute_bw_weights_v10(chunks, G, M, E, D, T, + weight_scale); tt_int_op(ret, OP_EQ, 1); tt_str_op(smartlist_get(chunks, 0), OP_EQ, "bandwidth-weights Wbd=0 Wbe=0 " "Wbg=0 Wbm=10000 Wdb=10000 Web=10000 Wed=0 Wee=10000 Weg=0 Wem=10000 " @@ -1937,12 +1941,13 @@ test_dir_networkstatus_compute_bw_weights_v10(void *arg) G = 10; D = 100; T = G + M + E + D; - ret = networkstatus_compute_bw_weights_v10(chunks, G, M, E, D, T, weight_scale); + ret = networkstatus_compute_bw_weights_v10(chunks, G, M, E, D, T, + weight_scale); tt_int_op(ret, OP_EQ, 1); - tt_str_op(smartlist_get(chunks, 0), OP_EQ, "bandwidth-weights Wbd=4000 Wbe=0 " - "Wbg=0 Wbm=10000 Wdb=10000 Web=10000 Wed=2000 Wee=10000 Weg=2000 Wem=10000 " - "Wgb=10000 Wgd=4000 Wgg=10000 Wgm=10000 Wmb=10000 Wmd=4000 Wme=0 Wmg=0 " - "Wmm=10000\n"); + tt_str_op(smartlist_get(chunks, 0), OP_EQ, "bandwidth-weights Wbd=4000 " + "Wbe=0 Wbg=0 Wbm=10000 Wdb=10000 Web=10000 Wed=2000 Wee=10000 Weg=2000 " + "Wem=10000 Wgb=10000 Wgd=4000 Wgg=10000 Wgm=10000 Wmb=10000 Wmd=4000 " + "Wme=0 Wmg=0 Wmm=10000\n"); smartlist_clear(chunks); /* case 2b2 */ @@ -1951,24 +1956,27 @@ test_dir_networkstatus_compute_bw_weights_v10(void *arg) G = 10; D = 100; T = G + M + E + D; - ret = networkstatus_compute_bw_weights_v10(chunks, G, M, E, D, T, weight_scale); + ret = networkstatus_compute_bw_weights_v10(chunks, G, M, E, D, T, + weight_scale); tt_int_op(ret, OP_EQ, 1); tt_str_op(smartlist_get(chunks, 0), OP_EQ, "bandwidth-weights Wbd=666 Wbe=0 " - "Wbg=0 Wbm=10000 Wdb=10000 Web=10000 Wed=3666 Wee=10000 Weg=3666 Wem=10000 " - "Wgb=10000 Wgd=5668 Wgg=10000 Wgm=10000 Wmb=10000 Wmd=666 Wme=0 Wmg=0 " - "Wmm=10000\n"); + "Wbg=0 Wbm=10000 Wdb=10000 Web=10000 Wed=3666 Wee=10000 Weg=3666 " + "Wem=10000 Wgb=10000 Wgd=5668 Wgg=10000 Wgm=10000 Wmb=10000 Wmd=666 " + "Wme=0 Wmg=0 Wmm=10000\n"); smartlist_clear(chunks); /* case 2b3 */ - /* XXX I can't get a combination of values that hits this case without error, so - * this just tests that it fails. See #20285 */ + /* XXX I can't get a combination of values that hits this case without error, + * so this just tests that it fails. See #20285. Also see #20284 as 2b3 does + * not follow dir-spec. */ /* (E < T/3 && G < T/3) && (E+D>=G || G+D>=E) && (M > T/3) */ M = 80; E = 30; G = 30; D = 30; T = G + M + E + D; - ret = networkstatus_compute_bw_weights_v10(chunks, G, M, E, D, T, weight_scale); + ret = networkstatus_compute_bw_weights_v10(chunks, G, M, E, D, T, + weight_scale); tt_int_op(ret, OP_EQ, 0); smartlist_clear(chunks); @@ -1978,12 +1986,13 @@ test_dir_networkstatus_compute_bw_weights_v10(void *arg) G = 10; D = 5; T = G + M + E + D; - ret = networkstatus_compute_bw_weights_v10(chunks, G, M, E, D, T, weight_scale); + ret = networkstatus_compute_bw_weights_v10(chunks, G, M, E, D, T, + weight_scale); tt_int_op(ret, OP_EQ, 1); - tt_str_op(smartlist_get(chunks, 0), OP_EQ, "bandwidth-weights Wbd=0 Wbe=3333 " - "Wbg=0 Wbm=10000 Wdb=10000 Web=10000 Wed=0 Wee=6667 Weg=0 Wem=6667 " - "Wgb=10000 Wgd=10000 Wgg=10000 Wgm=10000 Wmb=10000 Wmd=0 Wme=3333 Wmg=0 " - "Wmm=10000\n"); + tt_str_op(smartlist_get(chunks, 0), OP_EQ, "bandwidth-weights Wbd=0 " + "Wbe=3333 Wbg=0 Wbm=10000 Wdb=10000 Web=10000 Wed=0 Wee=6667 Weg=0 " + "Wem=6667 Wgb=10000 Wgd=10000 Wgg=10000 Wgm=10000 Wmb=10000 Wmd=0 " + "Wme=3333 Wmg=0 Wmm=10000\n"); smartlist_clear(chunks); /* case 3a E scarce */ @@ -1992,7 +2001,8 @@ test_dir_networkstatus_compute_bw_weights_v10(void *arg) G = 30; D = 5; T = G + M + E + D; - ret = networkstatus_compute_bw_weights_v10(chunks, G, M, E, D, T, weight_scale); + ret = networkstatus_compute_bw_weights_v10(chunks, G, M, E, D, T, + weight_scale); tt_int_op(ret, OP_EQ, 1); tt_str_op(smartlist_get(chunks, 0), OP_EQ, "bandwidth-weights Wbd=0 Wbe=0 " "Wbg=3333 Wbm=10000 Wdb=10000 Web=10000 Wed=10000 Wee=10000 Weg=10000 " @@ -2006,12 +2016,13 @@ test_dir_networkstatus_compute_bw_weights_v10(void *arg) G = 10; D = 10; T = G + M + E + D; - ret = networkstatus_compute_bw_weights_v10(chunks, G, M, E, D, T, weight_scale); + ret = networkstatus_compute_bw_weights_v10(chunks, G, M, E, D, T, + weight_scale); tt_int_op(ret, OP_EQ, 1); - tt_str_op(smartlist_get(chunks, 0), OP_EQ, "bandwidth-weights Wbd=0 Wbe=3334 " - "Wbg=0 Wbm=10000 Wdb=10000 Web=10000 Wed=0 Wee=6666 Weg=0 Wem=6666 " - "Wgb=10000 Wgd=10000 Wgg=10000 Wgm=10000 Wmb=10000 Wmd=0 Wme=3334 Wmg=0 " - "Wmm=10000\n"); + tt_str_op(smartlist_get(chunks, 0), OP_EQ, "bandwidth-weights Wbd=0 " + "Wbe=3334 Wbg=0 Wbm=10000 Wdb=10000 Web=10000 Wed=0 Wee=6666 Weg=0 " + "Wem=6666 Wgb=10000 Wgd=10000 Wgg=10000 Wgm=10000 Wmb=10000 Wmd=0 " + "Wme=3334 Wmg=0 Wmm=10000\n"); smartlist_clear(chunks); /* case 3be */ @@ -2020,13 +2031,74 @@ test_dir_networkstatus_compute_bw_weights_v10(void *arg) G = 30; D = 10; T = G + M + E + D; - ret = networkstatus_compute_bw_weights_v10(chunks, G, M, E, D, T, weight_scale); + ret = networkstatus_compute_bw_weights_v10(chunks, G, M, E, D, T, + weight_scale); tt_int_op(ret, OP_EQ, 1); tt_str_op(smartlist_get(chunks, 0), OP_EQ, "bandwidth-weights Wbd=0 Wbe=0 " "Wbg=3334 Wbm=10000 Wdb=10000 Web=10000 Wed=10000 Wee=10000 Weg=10000 " "Wem=10000 Wgb=10000 Wgd=0 Wgg=6666 Wgm=6666 Wmb=10000 Wmd=0 Wme=0 " "Wmg=3334 Wmm=10000\n"); smartlist_clear(chunks); + + /* case from 21 Jul 2013 (3be) */ + G = 5483409; + M = 1455379; + E = 980834; + D = 3385803; + T = 11305425; + tt_int_op(G+M+E+D, OP_EQ, T); + ret = networkstatus_compute_bw_weights_v10(chunks, G, M, E, D, T, + weight_scale); + tt_str_op(smartlist_get(chunks, 0), OP_EQ, "bandwidth-weights Wbd=883 Wbe=0 " + "Wbg=3673 Wbm=10000 Wdb=10000 Web=10000 Wed=8233 Wee=10000 Weg=8233 " + "Wem=10000 Wgb=10000 Wgd=883 Wgg=6327 Wgm=6327 Wmb=10000 Wmd=883 Wme=0 " + "Wmg=3673 Wmm=10000\n"); + smartlist_clear(chunks); + + /* case from 04 Oct 2016 (3a E scarce) */ + G=29322240; + M=4721546; + E=1522058; + D=9273571; + T=44839415; + tt_int_op(G+M+E+D, OP_EQ, T); + ret = networkstatus_compute_bw_weights_v10(chunks, G, M, E, D, T, + weight_scale); + tt_str_op(smartlist_get(chunks, 0), OP_EQ, "bandwidth-weights Wbd=0 Wbe=0 " + "Wbg=4194 Wbm=10000 Wdb=10000 Web=10000 Wed=10000 Wee=10000 Weg=10000 " + "Wem=10000 Wgb=10000 Wgd=0 Wgg=5806 Wgm=5806 Wmb=10000 Wmd=0 Wme=0 " + "Wmg=4194 Wmm=10000\n"); + smartlist_clear(chunks); + + /* case from 04 Sep 2013 (2b1) */ + G=3091352; + M=1838837; + E=2109300; + D=2469369; + T=9508858; + tt_int_op(G+M+E+D, OP_EQ, T); + ret = networkstatus_compute_bw_weights_v10(chunks, G, M, E, D, T, + weight_scale); + tt_str_op(smartlist_get(chunks, 0), OP_EQ, "bandwidth-weights Wbd=317 " + "Wbe=5938 Wbg=0 Wbm=10000 Wdb=10000 Web=10000 Wed=9366 Wee=4061 " + "Weg=9366 Wem=4061 Wgb=10000 Wgd=317 Wgg=10000 Wgm=10000 Wmb=10000 " + "Wmd=317 Wme=5938 Wmg=0 Wmm=10000\n"); + smartlist_clear(chunks); + + /* explicitly test initializing weights to 1*/ + G=1; + M=1; + E=1; + D=1; + T=4; + tt_int_op(G+M+E+D, OP_EQ, T); + ret = networkstatus_compute_bw_weights_v10(chunks, G, M, E, D, T, + weight_scale); + tt_str_op(smartlist_get(chunks, 0), OP_EQ, "bandwidth-weights Wbd=3333 " + "Wbe=0 Wbg=0 Wbm=10000 Wdb=10000 Web=10000 Wed=3333 Wee=10000 Weg=3333 " + "Wem=10000 Wgb=10000 Wgd=3333 Wgg=10000 Wgm=10000 Wmb=10000 Wmd=3333 " + "Wme=0 Wmg=0 Wmm=10000\n"); + smartlist_clear(chunks); done: return; } |