|
@@ -3253,16 +3253,51 @@ test_dir_http_handling(void *args)
|
|
|
}
|
|
|
|
|
|
static void
|
|
|
-test_dir_purpose_needs_anonymity(void *arg)
|
|
|
+test_dir_purpose_needs_anonymity_returns_true_for_bridges(void *arg)
|
|
|
{
|
|
|
(void)arg;
|
|
|
+
|
|
|
tt_int_op(1, ==, purpose_needs_anonymity(0, ROUTER_PURPOSE_BRIDGE));
|
|
|
- tt_int_op(1, ==, purpose_needs_anonymity(0, ROUTER_PURPOSE_GENERAL));
|
|
|
- tt_int_op(0, ==, purpose_needs_anonymity(DIR_PURPOSE_FETCH_MICRODESC,
|
|
|
- ROUTER_PURPOSE_GENERAL));
|
|
|
+ tt_int_op(1, ==, purpose_needs_anonymity(DIR_PURPOSE_HAS_FETCHED_RENDDESC_V2,
|
|
|
+ ROUTER_PURPOSE_BRIDGE));
|
|
|
+ done: ;
|
|
|
+}
|
|
|
+
|
|
|
+static void
|
|
|
+test_dir_purpose_needs_anonymity_returns_true_for_sensitive_purpose(void *arg)
|
|
|
+{
|
|
|
+ (void)arg;
|
|
|
+
|
|
|
+ tt_int_op(1, ==, purpose_needs_anonymity(
|
|
|
+ DIR_PURPOSE_HAS_FETCHED_RENDDESC_V2,
|
|
|
+ ROUTER_PURPOSE_GENERAL));
|
|
|
+ tt_int_op(1, ==, purpose_needs_anonymity(
|
|
|
+ DIR_PURPOSE_UPLOAD_RENDDESC_V2, 0));
|
|
|
+ tt_int_op(1, ==, purpose_needs_anonymity(
|
|
|
+ DIR_PURPOSE_FETCH_RENDDESC_V2, 0));
|
|
|
done: ;
|
|
|
}
|
|
|
|
|
|
+static void
|
|
|
+test_dir_purpose_needs_anonymity_ret_false_for_non_sensitive_conn(void *arg)
|
|
|
+{
|
|
|
+ (void)arg;
|
|
|
+
|
|
|
+ tt_int_op(0, ==, purpose_needs_anonymity(DIR_PURPOSE_UPLOAD_DIR,
|
|
|
+ ROUTER_PURPOSE_GENERAL));
|
|
|
+ tt_int_op(0, ==, purpose_needs_anonymity(DIR_PURPOSE_UPLOAD_VOTE, 0));
|
|
|
+ tt_int_op(0, ==, purpose_needs_anonymity(DIR_PURPOSE_UPLOAD_SIGNATURES, 0));
|
|
|
+ tt_int_op(0, ==, purpose_needs_anonymity(DIR_PURPOSE_FETCH_STATUS_VOTE, 0));
|
|
|
+ tt_int_op(0, ==, purpose_needs_anonymity(
|
|
|
+ DIR_PURPOSE_FETCH_DETACHED_SIGNATURES, 0));
|
|
|
+ tt_int_op(0, ==, purpose_needs_anonymity(DIR_PURPOSE_FETCH_CONSENSUS, 0));
|
|
|
+ tt_int_op(0, ==, purpose_needs_anonymity(DIR_PURPOSE_FETCH_CERTIFICATE, 0));
|
|
|
+ tt_int_op(0, ==, purpose_needs_anonymity(DIR_PURPOSE_FETCH_SERVERDESC, 0));
|
|
|
+ tt_int_op(0, ==, purpose_needs_anonymity(DIR_PURPOSE_FETCH_EXTRAINFO, 0));
|
|
|
+ tt_int_op(0, ==, purpose_needs_anonymity(DIR_PURPOSE_FETCH_MICRODESC, 0));
|
|
|
+ done: ;
|
|
|
+}
|
|
|
+
|
|
|
static void
|
|
|
test_dir_fetch_type(void *arg)
|
|
|
{
|
|
@@ -5464,7 +5499,9 @@ struct testcase_t dir_tests[] = {
|
|
|
DIR(fmt_control_ns, 0),
|
|
|
DIR(dirserv_set_routerstatus_testing, 0),
|
|
|
DIR(http_handling, 0),
|
|
|
- DIR(purpose_needs_anonymity, 0),
|
|
|
+ DIR(purpose_needs_anonymity_returns_true_for_bridges, 0),
|
|
|
+ DIR(purpose_needs_anonymity_returns_true_for_sensitive_purpose, 0),
|
|
|
+ DIR(purpose_needs_anonymity_ret_false_for_non_sensitive_conn, 0),
|
|
|
DIR(fetch_type, 0),
|
|
|
DIR(packages, 0),
|
|
|
DIR(download_status_schedule, 0),
|