From: Mike Perry Date: Tue, 8 Jun 2010 02:06:06 +0000 (-0700) Subject: Address some issues with unit tests. X-Git-Tag: tor-0.2.2.14-alpha~11^2~9 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e3d5b516c635aaee73bace1bac00dade66cd9c22;p=thirdparty%2Ftor.git Address some issues with unit tests. Histogram conversion causes accuracy loss, and there are some boundary conditions when we hit 1000 circuits that cause false negative test results. --- diff --git a/src/test/test.c b/src/test/test.c index eb06c762df..6cfb2f76b6 100644 --- a/src/test/test.c +++ b/src/test/test.c @@ -495,13 +495,12 @@ test_circuit_timeout(void) CBT_DEFAULT_QUANTILE_CUTOFF/100.0); circuit_build_times_set_timeout(&estimate); log_warn(LD_CIRC, "Timeout1 is %lf, Xm is %d", timeout1, estimate.Xm); - /* XXX: 5% distribution error may not be the right metric */ } while (fabs(circuit_build_times_cdf(&initial, timeout0) - - circuit_build_times_cdf(&initial, timeout1)) > 0.05 - /* 5% error */ + circuit_build_times_cdf(&initial, timeout1)) > 0.02 + /* 2% error */ && estimate.total_build_times < CBT_NCIRCUITS_TO_OBSERVE); - test_assert(estimate.total_build_times < CBT_NCIRCUITS_TO_OBSERVE); + test_assert(estimate.total_build_times <= CBT_NCIRCUITS_TO_OBSERVE); circuit_build_times_update_state(&estimate, &state); test_assert(circuit_build_times_parse_state(&final, &state, &msg) == 0); @@ -513,6 +512,7 @@ test_circuit_timeout(void) circuit_build_times_set_timeout(&final); log_warn(LD_CIRC, "Timeout2 is %lf, Xm is %d", timeout2, final.Xm); + /* 5% here because some accuracy is lost due to histogram conversion */ test_assert(fabs(circuit_build_times_cdf(&initial, timeout0) - circuit_build_times_cdf(&initial, timeout2)) < 0.05); @@ -581,7 +581,10 @@ test_circuit_timeout(void) /* Check rollback index. Should match top of loop. */ test_assert(build_times_idx == estimate.build_times_idx); - test_assert(total_build_times == estimate.total_build_times); + // This can fail if estimate.total_build_times == 1000, because + // in that case, rewind actually causes us to lose timeouts + if (total_build_times != CBT_NCIRCUITS_TO_OBSERVE) + test_assert(total_build_times == estimate.total_build_times); /* Now simulate that the network has become live and we need * a change */