/** Use TestingDirAuthVoteExit, TestingDirAuthVoteGuard, and * TestingDirAuthVoteHSDir to give out the Exit, Guard, and HSDir flags, * respectively. But don't set the corresponding node flags. * Should only be called if TestingTorNetwork is set. */ STATIC void dirserv_set_routerstatus_testing(routerstatus_t *rs) { const or_options_t *options = get_options(); tor_assert(options->TestingTorNetwork); if (routerset_contains_routerstatus(options->TestingDirAuthVoteExit, rs, 0)) { rs->is_exit = 1; } else if (options->TestingDirAuthVoteExitIsStrict) { rs->is_exit = 0; } if (routerset_contains_routerstatus(options->TestingDirAuthVoteGuard, rs, 0)) { rs->is_possible_guard = 1; } else if (options->TestingDirAuthVoteGuardIsStrict) { rs->is_possible_guard = 0; } if (routerset_contains_routerstatus(options->TestingDirAuthVoteHSDir, rs, 0)) { rs->is_hs_dir = 1; } else if (options->TestingDirAuthVoteHSDirIsStrict) { rs->is_hs_dir = 0; } }
static void NS(test_main)(void *arg) { routerset_t *set = routerset_new(); routerstatus_t rs; country_t country = 1; int r; const char *nickname = "foo"; (void)arg; memset(&rs, 0, sizeof(rs)); strmap_set_lc(set->names, nickname, (void *)1); strncpy(rs.nickname, nickname, sizeof(rs.nickname) - 1); rs.nickname[sizeof(rs.nickname) - 1] = '\0'; r = routerset_contains_routerstatus(set, &rs, country); tt_int_op(r, ==, 4); done: routerset_free(set); }