]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Add unit test for #13290
authorSebastian Hahn <sebastian@torproject.org>
Fri, 6 Feb 2015 19:39:10 +0000 (20:39 +0100)
committerSebastian Hahn <sebastian@torproject.org>
Fri, 6 Feb 2015 20:04:05 +0000 (21:04 +0100)
src/or/circuitstats.c
src/test/test.c

index 18cb1c84849851905297fc4ff2065deecaec8d5b..7b3ad56537f958033b5e366df43d72c9fdb896cd 100644 (file)
@@ -1074,7 +1074,7 @@ circuit_build_times_update_alpha(circuit_build_times_t *cbt)
  *     random_sample_from_Pareto_distribution
  * That's right. I'll cite wikipedia all day long.
  *
- * Return value is in milliseconds.
+ * Return value is in milliseconds, clamped to INT32_MAX.
  */
 STATIC double
 circuit_build_times_calculate_timeout(circuit_build_times_t *cbt,
index 85a7ad6c7c0e524c4456a3414b64af43a3dc6ca2..7995af3c698af94d6c385b399bb6c7a16891d027 100644 (file)
@@ -442,6 +442,14 @@ test_circuit_timeout(void *arg)
     tt_assert(circuit_build_times_network_check_live(&final));
 
     circuit_build_times_count_timeout(&final, 1);
+
+    /* Ensure return value for degenerate cases are clamped correctly */
+    initial.alpha = INT32_MAX;
+    tt_assert(circuit_build_times_calculate_timeout(&initial, .99999999) <=
+              INT32_MAX);
+    initial.alpha = 0;
+    tt_assert(circuit_build_times_calculate_timeout(&initial, .5) <=
+              INT32_MAX);
   }
 
  done: