[tor-commits] [tor/master] test_options: don't pass an old_options argument to options_validate()

nickm at torproject.org nickm at torproject.org
Fri Oct 25 12:15:41 UTC 2019


commit 7c0f96666880256bbadd23233dd108d33f8b744e
Author: Nick Mathewson <nickm at torproject.org>
Date:   Wed Oct 23 17:52:48 2019 -0400

    test_options: don't pass an old_options argument to options_validate()
    
    This input was inessential, and none of the tests actually depended
    on it or tested anything about it (as can be seen from the fact that
    tests all still pass when it's removed).
    
    I tried to generate this commit with a coccinelle script, but it had
    trouble parsing a lot of options_validate as it stands.  Instead, I
    did a search-and-replace to replace "tdata->old_opt," with "NULL,".
---
 src/test/test_options.c | 518 ++++++++++++++++++++++++------------------------
 1 file changed, 259 insertions(+), 259 deletions(-)

diff --git a/src/test/test_options.c b/src/test/test_options.c
index 67c0821cf..941ca94d9 100644
--- a/src/test/test_options.c
+++ b/src/test/test_options.c
@@ -456,7 +456,7 @@ test_options_validate__uname_for_server(void *ignored)
 
   MOCK(get_uname, fixed_get_uname);
   fixed_get_uname_result = "Windows 95";
-  options_validate(tdata->old_opt, tdata->opt, &msg);
+  options_validate(NULL, tdata->opt, &msg);
   expect_log_msg("Tor is running as a server, but you"
            " are running Windows 95; this probably won't work. See https://www"
            ".torproject.org/docs/faq.html#BestOSForRelay for details.\n");
@@ -464,7 +464,7 @@ test_options_validate__uname_for_server(void *ignored)
 
   fixed_get_uname_result = "Windows 98";
   mock_clean_saved_logs();
-  options_validate(tdata->old_opt, tdata->opt, &msg);
+  options_validate(NULL, tdata->opt, &msg);
   expect_log_msg("Tor is running as a server, but you"
            " are running Windows 98; this probably won't work. See https://www"
            ".torproject.org/docs/faq.html#BestOSForRelay for details.\n");
@@ -472,7 +472,7 @@ test_options_validate__uname_for_server(void *ignored)
 
   fixed_get_uname_result = "Windows Me";
   mock_clean_saved_logs();
-  options_validate(tdata->old_opt, tdata->opt, &msg);
+  options_validate(NULL, tdata->opt, &msg);
   expect_log_msg("Tor is running as a server, but you"
            " are running Windows Me; this probably won't work. See https://www"
            ".torproject.org/docs/faq.html#BestOSForRelay for details.\n");
@@ -480,7 +480,7 @@ test_options_validate__uname_for_server(void *ignored)
 
   fixed_get_uname_result = "Windows 2000";
   mock_clean_saved_logs();
-  options_validate(tdata->old_opt, tdata->opt, &msg);
+  options_validate(NULL, tdata->opt, &msg);
   expect_no_log_msg("Tor is running as a server, but you ");
   tor_free(msg);
 
@@ -504,7 +504,7 @@ test_options_validate__outbound_addresses(void *ignored)
   options_test_data_t *tdata = get_options_test_data(
                                     "OutboundBindAddress xxyy!!!sdfaf");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "Multiple outbound bind addresses configured: "
                         "xxyy!!!sdfaf");
@@ -541,7 +541,7 @@ test_options_validate__data_directory(void *ignored)
                                                 "ONGLONGlongreallylongLONG"
                                                 "LONG"); // 440 characters
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "Invalid DataDirectory");
 
@@ -559,7 +559,7 @@ test_options_validate__nickname(void *ignored)
   options_test_data_t *tdata = get_options_test_data(
                                         "Nickname ThisNickNameIsABitTooLong");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "Nickname 'ThisNickNameIsABitTooLong', nicknames must be between "
@@ -569,13 +569,13 @@ test_options_validate__nickname(void *ignored)
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("Nickname AMoreValidNick");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tor_free(msg);
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("DataDirectory /tmp/somewhere");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
 
  done:
@@ -594,7 +594,7 @@ test_options_validate__contactinfo(void *ignored)
   setup_capture_of_logs(LOG_DEBUG);
   tdata->opt->ContactInfo = NULL;
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_log_msg(
             "Your ContactInfo config option is not"
@@ -606,7 +606,7 @@ test_options_validate__contactinfo(void *ignored)
   tdata = get_options_test_data("ORPort 127.0.0.1:5555\n"
                                 "ContactInfo hella at example.org");
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_no_log_msg(
             "Your ContactInfo config option is not"
@@ -632,7 +632,7 @@ test_options_validate__logs(void *ignored)
   tdata->opt->Logs = NULL;
   tdata->opt->RunAsDaemon = 0;
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_assert(!tdata->opt->Logs);
   tor_free(msg);
   tt_int_op(ret, OP_EQ, 0);
@@ -642,7 +642,7 @@ test_options_validate__logs(void *ignored)
   tdata->opt->Logs = NULL;
   tdata->opt->RunAsDaemon = 0;
   quiet_level = 1;
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_assert(!tdata->opt->Logs);
   tor_free(msg);
   tt_int_op(ret, OP_EQ, 0);
@@ -652,7 +652,7 @@ test_options_validate__logs(void *ignored)
   tdata->opt->Logs = NULL;
   tdata->opt->RunAsDaemon = 0;
   quiet_level = 2;
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_assert(!tdata->opt->Logs);
   tor_free(msg);
   tt_int_op(ret, OP_EQ, 0);
@@ -661,7 +661,7 @@ test_options_validate__logs(void *ignored)
   tdata = get_options_test_data("");
   tdata->opt->Logs = NULL;
   tdata->opt->RunAsDaemon = 0;
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_assert(!tdata->opt->Logs);
   tor_free(msg);
   tt_int_op(ret, OP_EQ, 0);
@@ -670,7 +670,7 @@ test_options_validate__logs(void *ignored)
   tdata = get_options_test_data("");
   tdata->opt->Logs = NULL;
   tdata->opt->RunAsDaemon = 1;
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_assert(!tdata->opt->Logs);
   tor_free(msg);
 #ifdef _WIN32
@@ -686,7 +686,7 @@ test_options_validate__logs(void *ignored)
   config_line_t *cl=NULL;
   config_get_lines("Log foo", &cl, 1);
   tdata->opt->Logs = cl;
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op((intptr_t)tdata->opt->Logs, OP_EQ, (intptr_t)cl);
   tt_int_op(ret, OP_EQ, -1);
 
@@ -720,7 +720,7 @@ test_options_validate__authdir(void *ignored)
   sandbox_disable_getaddrinfo_cache();
 
   MOCK(tor_addr_lookup, mock_tor_addr_lookup__fail_on_bad_addrs);
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   UNMOCK(tor_addr_lookup);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "Failed to resolve/guess local address. See logs for"
@@ -733,7 +733,7 @@ test_options_validate__authdir(void *ignored)
   tdata = get_options_test_data("AuthoritativeDirectory 1\n"
                                 "Address 100.200.10.1");
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "Authoritative directory servers must set "
                         "ContactInfo");
@@ -743,7 +743,7 @@ test_options_validate__authdir(void *ignored)
   tdata = get_options_test_data("AuthoritativeDirectory 1\n"
                                 "Address 100.200.10.1\n");
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "Authoritative directory servers must set ContactInfo");
@@ -754,7 +754,7 @@ test_options_validate__authdir(void *ignored)
                                 "Address 100.200.10.1\n"
                                 "TestingTorNetwork 1\n");
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "AuthoritativeDir is set, but none of (Bridge/V3)"
             "AuthoritativeDir is set.");
@@ -765,7 +765,7 @@ test_options_validate__authdir(void *ignored)
                                 "Address 100.200.10.1\n"
                                 "ContactInfo hello at hello.com\n");
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "AuthoritativeDir is set, but none of (Bridge/V3)"
             "AuthoritativeDir is set.");
@@ -777,7 +777,7 @@ test_options_validate__authdir(void *ignored)
                                 "RecommendedVersions 1.2, 3.14\n"
                                 "ContactInfo hello at hello.com\n");
   mock_clean_saved_logs();
-  options_validate(tdata->old_opt, tdata->opt, &msg);
+  options_validate(NULL, tdata->opt, &msg);
   tt_str_op(tdata->opt->RecommendedClientVersions->value, OP_EQ, "1.2, 3.14");
   tt_str_op(tdata->opt->RecommendedServerVersions->value, OP_EQ, "1.2, 3.14");
   tor_free(msg);
@@ -790,7 +790,7 @@ test_options_validate__authdir(void *ignored)
                                 "RecommendedServerVersions 4.18\n"
                                 "ContactInfo hello at hello.com\n");
   mock_clean_saved_logs();
-  options_validate(tdata->old_opt, tdata->opt, &msg);
+  options_validate(NULL, tdata->opt, &msg);
   tt_str_op(tdata->opt->RecommendedClientVersions->value, OP_EQ, "25");
   tt_str_op(tdata->opt->RecommendedServerVersions->value, OP_EQ, "4.18");
   tor_free(msg);
@@ -804,7 +804,7 @@ test_options_validate__authdir(void *ignored)
                                 "RecommendedServerVersions 4.18\n"
                                 "ContactInfo hello at hello.com\n");
   mock_clean_saved_logs();
-  options_validate(tdata->old_opt, tdata->opt, &msg);
+  options_validate(NULL, tdata->opt, &msg);
   tt_str_op(msg, OP_EQ, "AuthoritativeDir is set, but none of (Bridge/V3)"
             "AuthoritativeDir is set.");
   tor_free(msg);
@@ -816,7 +816,7 @@ test_options_validate__authdir(void *ignored)
                                 "RecommendedServerVersions 4.18\n"
                                 "ContactInfo hello at hello.com\n");
   mock_clean_saved_logs();
-  options_validate(tdata->old_opt, tdata->opt, &msg);
+  options_validate(NULL, tdata->opt, &msg);
   tt_str_op(msg, OP_EQ, "Versioning authoritative dir servers must set "
             "Recommended*Versions.");
   tor_free(msg);
@@ -828,7 +828,7 @@ test_options_validate__authdir(void *ignored)
                                 "RecommendedClientVersions 4.18\n"
                                 "ContactInfo hello at hello.com\n");
   mock_clean_saved_logs();
-  options_validate(tdata->old_opt, tdata->opt, &msg);
+  options_validate(NULL, tdata->opt, &msg);
   tt_str_op(msg, OP_EQ, "Versioning authoritative dir servers must set "
             "Recommended*Versions.");
   tor_free(msg);
@@ -839,7 +839,7 @@ test_options_validate__authdir(void *ignored)
                                 "UseEntryGuards 1\n"
                                 "ContactInfo hello at hello.com\n");
   mock_clean_saved_logs();
-  options_validate(tdata->old_opt, tdata->opt, &msg);
+  options_validate(NULL, tdata->opt, &msg);
   expect_log_msg("Authoritative directory servers "
             "can't set UseEntryGuards. Disabling.\n");
   tt_int_op(tdata->opt->UseEntryGuards, OP_EQ, 0);
@@ -851,7 +851,7 @@ test_options_validate__authdir(void *ignored)
                                 "V3AuthoritativeDir 1\n"
                                 "ContactInfo hello at hello.com\n");
   mock_clean_saved_logs();
-  options_validate(tdata->old_opt, tdata->opt, &msg);
+  options_validate(NULL, tdata->opt, &msg);
   expect_log_msg("Authoritative directories always try"
             " to download extra-info documents. Setting DownloadExtraInfo.\n");
   tt_int_op(tdata->opt->DownloadExtraInfo, OP_EQ, 1);
@@ -864,7 +864,7 @@ test_options_validate__authdir(void *ignored)
                                 "V3AuthoritativeDir 1\n"
                                 "ContactInfo hello at hello.com\n");
   mock_clean_saved_logs();
-  options_validate(tdata->old_opt, tdata->opt, &msg);
+  options_validate(NULL, tdata->opt, &msg);
   expect_no_log_msg("Authoritative directories always try"
             " to download extra-info documents. Setting DownloadExtraInfo.\n");
   tt_int_op(tdata->opt->DownloadExtraInfo, OP_EQ, 1);
@@ -875,7 +875,7 @@ test_options_validate__authdir(void *ignored)
                                 "Address 100.200.10.1\n"
                                 "ContactInfo hello at hello.com\n");
   mock_clean_saved_logs();
-  options_validate(tdata->old_opt, tdata->opt, &msg);
+  options_validate(NULL, tdata->opt, &msg);
   tt_str_op(msg, OP_EQ, "AuthoritativeDir is set, but none of (Bridge/V3)"
             "AuthoritativeDir is set.");
   tor_free(msg);
@@ -887,7 +887,7 @@ test_options_validate__authdir(void *ignored)
                                 "ContactInfo hello at hello.com\n"
                                 "V3BandwidthsFile non-existent-file\n");
   mock_clean_saved_logs();
-  options_validate(tdata->old_opt, tdata->opt, &msg);
+  options_validate(NULL, tdata->opt, &msg);
   tt_str_op(msg, OP_EQ,
             "Running as authoritative directory, but no DirPort set.");
   tor_free(msg);
@@ -911,7 +911,7 @@ test_options_validate__authdir(void *ignored)
                                 "ContactInfo hello at hello.com\n"
                                 "GuardfractionFile non-existent-file\n");
   mock_clean_saved_logs();
-  options_validate(tdata->old_opt, tdata->opt, &msg);
+  options_validate(NULL, tdata->opt, &msg);
   tt_str_op(msg, OP_EQ,
             "Running as authoritative directory, but no DirPort set.");
   tor_free(msg);
@@ -934,7 +934,7 @@ test_options_validate__authdir(void *ignored)
                                 "BridgeAuthoritativeDir 1\n"
                                 "ContactInfo hello at hello.com\n");
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "Running as authoritative directory, but no DirPort set.");
@@ -947,7 +947,7 @@ test_options_validate__authdir(void *ignored)
                                 "BridgeAuthoritativeDir 1\n"
                                 "ContactInfo hello at hello.com\n");
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "Running as authoritative directory, but no ORPort set.");
@@ -964,7 +964,7 @@ test_options_validate__authdir(void *ignored)
   /*                               "BridgeAuthoritativeDir 1\n" */
   /*                               "ContactInfo hello at hello.com\n" ); */
   /* mock_clean_saved_logs(); */
-  /* ret = options_validate(tdata->old_opt, tdata->opt, */
+  /* ret = options_validate(NULL, tdata->opt, */
   /*                        tdata->def_opt, 0, &msg); */
   /* tt_int_op(ret, OP_EQ, -1); */
   /* tt_str_op(msg, OP_EQ, "Running as authoritative directory, " */
@@ -990,7 +990,7 @@ test_options_validate__relay_with_hidden_services(void *ignored)
                                   "HiddenServicePort 80 127.0.0.1:8080\n"
                                                      );
 
-  options_validate(tdata->old_opt, tdata->opt, &msg);
+  options_validate(NULL, tdata->opt, &msg);
   expect_log_msg(
             "Tor is currently configured as a relay and a hidden service. "
             "That's not very secure: you should probably run your hidden servi"
@@ -1013,7 +1013,7 @@ test_options_validate__relay_with_hidden_services(void *ignored)
 /*   char *msg; */
 /*   setup_capture_of_logs(LOG_WARN); */
 /*   options_test_data_t *tdata = get_options_test_data(""); */
-/*   ret = options_validate(tdata->old_opt, tdata->opt, */
+/*   ret = options_validate(NULL, tdata->opt, */
 /*                          tdata->def_opt, 0, &msg); */
 /*   expect_log_msg("SocksPort, TransPort, NATDPort, DNSPort, and ORPort " */
 /*           "are all undefined, and there aren't any hidden services " */
@@ -1037,7 +1037,7 @@ test_options_validate__transproxy(void *ignored)
   // Test default trans proxy
   tdata = get_options_test_data("TransProxyType default\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_int_op(tdata->opt->TransProxyType_parsed, OP_EQ, TPT_DEFAULT);
   tor_free(msg);
@@ -1045,7 +1045,7 @@ test_options_validate__transproxy(void *ignored)
   // Test pf-divert trans proxy
   free_options_test_data(tdata);
   tdata = get_options_test_data("TransProxyType pf-divert\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
 
 #if !defined(OpenBSD) && !defined( DARWIN )
@@ -1061,7 +1061,7 @@ test_options_validate__transproxy(void *ignored)
   // Test tproxy trans proxy
   free_options_test_data(tdata);
   tdata = get_options_test_data("TransProxyType tproxy\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
 
 #if !defined(__linux__)
@@ -1076,7 +1076,7 @@ test_options_validate__transproxy(void *ignored)
   // Test ipfw trans proxy
   free_options_test_data(tdata);
   tdata = get_options_test_data("TransProxyType ipfw\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
 
 #ifndef KERNEL_MAY_SUPPORT_IPFW
@@ -1092,7 +1092,7 @@ test_options_validate__transproxy(void *ignored)
   // Test unknown trans proxy
   free_options_test_data(tdata);
   tdata = get_options_test_data("TransProxyType non-existent\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "Unrecognized value for TransProxyType");
   tor_free(msg);
@@ -1104,24 +1104,24 @@ test_options_validate__transproxy(void *ignored)
 #if defined(__linux__)
   tdata = get_options_test_data("TransProxyType tproxy\n"
                                 "TransPort 127.0.0.1:123\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
 #elif defined(KERNEL_MAY_SUPPORT_IPFW)
   tdata = get_options_test_data("TransProxyType ipfw\n"
                                 "TransPort 127.0.0.1:123\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tor_free(msg);
 #elif defined(OpenBSD)
   tdata = get_options_test_data("TransProxyType pf-divert\n"
                                 "TransPort 127.0.0.1:123\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tor_free(msg);
 #elif defined(__NetBSD__)
   tdata = get_options_test_data("TransProxyType default\n"
                                 "TransPort 127.0.0.1:123\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tor_free(msg);
 #endif /* defined(__linux__) || ... */
@@ -1132,7 +1132,7 @@ test_options_validate__transproxy(void *ignored)
 #else /* !defined(USE_TRANSPARENT) */
   tdata = get_options_test_data("TransPort 127.0.0.1:555\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "TransPort is disabled in this build.");
   tor_free(msg);
@@ -1167,7 +1167,7 @@ test_options_validate__exclude_nodes(void *ignored)
   options_test_data_t *tdata = get_options_test_data(
                                                   "ExcludeExitNodes {us}\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_int_op(smartlist_len(tdata->opt->ExcludeExitNodesUnion_->list), OP_EQ, 1);
   tt_str_op((char *)
@@ -1177,7 +1177,7 @@ test_options_validate__exclude_nodes(void *ignored)
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("ExcludeNodes {cn}\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_int_op(smartlist_len(tdata->opt->ExcludeExitNodesUnion_->list), OP_EQ, 1);
   tt_str_op((char *)
@@ -1188,7 +1188,7 @@ test_options_validate__exclude_nodes(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("ExcludeNodes {cn}\n"
                                 "ExcludeExitNodes {us} {cn}\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_int_op(smartlist_len(tdata->opt->ExcludeExitNodesUnion_->list), OP_EQ, 2);
   tt_str_op((char *)
@@ -1203,7 +1203,7 @@ test_options_validate__exclude_nodes(void *ignored)
   tdata = get_options_test_data("ExcludeNodes {cn}\n"
                                 "StrictNodes 1\n");
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_log_msg(
             "You have asked to exclude certain relays from all positions "
@@ -1214,7 +1214,7 @@ test_options_validate__exclude_nodes(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("ExcludeNodes {cn}\n");
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_no_log_msg(
             "You have asked to exclude certain relays from all positions "
@@ -1239,7 +1239,7 @@ test_options_validate__node_families(void *ignored)
                                      "NodeFamily flux, flax\n"
                                      "NodeFamily somewhere\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_assert(tdata->opt->NodeFamilySets);
   tt_int_op(smartlist_len(tdata->opt->NodeFamilySets), OP_EQ, 2);
@@ -1257,7 +1257,7 @@ test_options_validate__node_families(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_assert(!tdata->opt->NodeFamilySets);
   tor_free(msg);
@@ -1265,7 +1265,7 @@ test_options_validate__node_families(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("NodeFamily !flux\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_assert(tdata->opt->NodeFamilySets);
   tt_int_op(smartlist_len(tdata->opt->NodeFamilySets), OP_EQ, 0);
@@ -1285,14 +1285,14 @@ test_options_validate__token_bucket(void *ignored)
   options_test_data_t *tdata = get_options_test_data("");
 
   tdata->opt->TokenBucketRefillInterval = 0;
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "TokenBucketRefillInterval must be between 1 and 1000 inclusive.");
   tor_free(msg);
 
   tdata->opt->TokenBucketRefillInterval = 1001;
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "TokenBucketRefillInterval must be between 1 and 1000 inclusive.");
@@ -1313,7 +1313,7 @@ test_options_validate__fetch_dir(void *ignored)
                                             "FetchDirInfoExtraEarly 1\n"
                                             "FetchDirInfoEarly 0\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "FetchDirInfoExtraEarly requires that you"
             " also set FetchDirInfoEarly");
@@ -1323,7 +1323,7 @@ test_options_validate__fetch_dir(void *ignored)
   tdata = get_options_test_data("FetchDirInfoExtraEarly 1\n"
                                 "FetchDirInfoEarly 1\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tor_free(msg);
 
@@ -1341,7 +1341,7 @@ test_options_validate__conn_limit(void *ignored)
   options_test_data_t *tdata = get_options_test_data(
                                             "ConnLimit 0\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "ConnLimit must be greater than 0, but was set to 0");
   tor_free(msg);
@@ -1349,7 +1349,7 @@ test_options_validate__conn_limit(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("ConnLimit 1\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tor_free(msg);
 
@@ -1375,7 +1375,7 @@ test_options_validate__paths_needed(void *ignored)
   options_test_data_t *tdata = get_options_test_data(
                                       "PathsNeededToBuildCircuits 0.1\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_assert(tdata->opt->PathsNeededToBuildCircuits > 0.24 &&
             tdata->opt->PathsNeededToBuildCircuits < 0.26);
@@ -1387,7 +1387,7 @@ test_options_validate__paths_needed(void *ignored)
   mock_clean_saved_logs();
   tdata = get_options_test_data("PathsNeededToBuildCircuits 0.99\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_assert(tdata->opt->PathsNeededToBuildCircuits > 0.94 &&
             tdata->opt->PathsNeededToBuildCircuits < 0.96);
@@ -1399,7 +1399,7 @@ test_options_validate__paths_needed(void *ignored)
   mock_clean_saved_logs();
   tdata = get_options_test_data("PathsNeededToBuildCircuits 0.91\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_assert(tdata->opt->PathsNeededToBuildCircuits > 0.90 &&
             tdata->opt->PathsNeededToBuildCircuits < 0.92);
@@ -1425,7 +1425,7 @@ test_options_validate__max_client_circuits(void *ignored)
   options_test_data_t *tdata = get_options_test_data(
                                              "MaxClientCircuitsPending 0\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "MaxClientCircuitsPending must be between 1 and 1024,"
             " but was set to 0");
@@ -1434,7 +1434,7 @@ test_options_validate__max_client_circuits(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("MaxClientCircuitsPending 1025\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "MaxClientCircuitsPending must be between 1 and 1024,"
             " but was set to 1025");
@@ -1443,7 +1443,7 @@ test_options_validate__max_client_circuits(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("MaxClientCircuitsPending 1\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tor_free(msg);
 
@@ -1460,7 +1460,7 @@ test_options_validate__ports(void *ignored)
   char *msg;
   options_test_data_t *tdata = get_options_test_data("FirewallPorts 65537\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "Port '65537' out of range in FirewallPorts");
   tor_free(msg);
@@ -1469,7 +1469,7 @@ test_options_validate__ports(void *ignored)
   tdata = get_options_test_data("FirewallPorts 1\n"
                                 "LongLivedPorts 124444\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "Port '124444' out of range in LongLivedPorts");
   tor_free(msg);
@@ -1479,7 +1479,7 @@ test_options_validate__ports(void *ignored)
                                 "LongLivedPorts 2\n"
                                 "RejectPlaintextPorts 112233\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "Port '112233' out of range in RejectPlaintextPorts");
   tor_free(msg);
@@ -1490,7 +1490,7 @@ test_options_validate__ports(void *ignored)
                                 "RejectPlaintextPorts 3\n"
                                 "WarnPlaintextPorts 65536\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "Port '65536' out of range in WarnPlaintextPorts");
   tor_free(msg);
@@ -1501,7 +1501,7 @@ test_options_validate__ports(void *ignored)
                                 "RejectPlaintextPorts 3\n"
                                 "WarnPlaintextPorts 4\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tor_free(msg);
 
@@ -1519,7 +1519,7 @@ test_options_validate__reachable_addresses(void *ignored)
   setup_capture_of_logs(LOG_NOTICE);
   options_test_data_t *tdata = get_options_test_data("FascistFirewall 1\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_log_msg("Converting FascistFirewall config "
             "option to new format: \"ReachableDirAddresses *:80\"\n");
@@ -1537,7 +1537,7 @@ test_options_validate__reachable_addresses(void *ignored)
   tt_assert(tdata->opt->FirewallPorts);
   SMARTLIST_FOREACH(tdata->opt->FirewallPorts, char *, cp, tor_free(cp));
   smartlist_clear(tdata->opt->FirewallPorts);
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
 #if 0
   /* This does not actually produce any logs, and did not produce any relevant
@@ -1553,7 +1553,7 @@ test_options_validate__reachable_addresses(void *ignored)
   tdata = get_options_test_data("FascistFirewall 1\n"
                                 "FirewallPort 123\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_log_msg("Converting FascistFirewall and "
             "FirewallPorts config options to new format: "
@@ -1568,7 +1568,7 @@ test_options_validate__reachable_addresses(void *ignored)
                                 "ReachableAddresses *:83\n"
                                 "ReachableAddresses reject *:*\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
 #if 0
   /* This does not actually produce any logs, and did not produce any relevant
@@ -1583,7 +1583,7 @@ test_options_validate__reachable_addresses(void *ignored)
   tdata = get_options_test_data("FascistFirewall 1\n"
                                 "ReachableAddresses *:82\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_ptr_op(tdata->opt->ReachableAddresses->next, OP_EQ, NULL);
   tor_free(msg);
@@ -1596,7 +1596,7 @@ test_options_validate__reachable_addresses(void *ignored)
   tdata = get_options_test_data("ReachableAddresses *:82\n"
                                 "ORPort 127.0.0.1:5555\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, SERVERS_REACHABLE_MSG);
   tor_free(msg);
@@ -1605,7 +1605,7 @@ test_options_validate__reachable_addresses(void *ignored)
   tdata = get_options_test_data("ReachableORAddresses *:82\n"
                                 "ORPort 127.0.0.1:5555\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, SERVERS_REACHABLE_MSG);
   tor_free(msg);
@@ -1614,7 +1614,7 @@ test_options_validate__reachable_addresses(void *ignored)
   tdata = get_options_test_data("ReachableDirAddresses *:82\n"
                                 "ORPort 127.0.0.1:5555\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, SERVERS_REACHABLE_MSG);
   tor_free(msg);
@@ -1623,7 +1623,7 @@ test_options_validate__reachable_addresses(void *ignored)
   tdata = get_options_test_data("ClientUseIPv4 0\n"
                                 "ORPort 127.0.0.1:5555\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, SERVERS_REACHABLE_MSG);
   tor_free(msg);
@@ -1636,7 +1636,7 @@ test_options_validate__reachable_addresses(void *ignored)
                                 "UseBridges 0\n"
                                 "ClientPreferIPv6ORPort 1\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tor_free(msg);
 
@@ -1646,7 +1646,7 @@ test_options_validate__reachable_addresses(void *ignored)
                                 "UseBridges 0\n"
                                 "ClientPreferIPv6DirPort 1\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tor_free(msg);
 
@@ -1658,7 +1658,7 @@ test_options_validate__reachable_addresses(void *ignored)
                                 "ClientPreferIPv6ORPort 1\n"
                                 "ClientPreferIPv6DirPort 1\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_ptr_op(msg, OP_EQ, NULL);
 
@@ -1669,7 +1669,7 @@ test_options_validate__reachable_addresses(void *ignored)
                                 "ClientPreferIPv6ORPort 1\n"
                                 "ClientPreferIPv6DirPort 1\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_ptr_op(msg, OP_EQ, NULL);
 
@@ -1680,7 +1680,7 @@ test_options_validate__reachable_addresses(void *ignored)
                                 "ClientPreferIPv6ORPort 1\n"
                                 "ClientPreferIPv6DirPort 1\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_ptr_op(msg, OP_EQ, NULL);
 
@@ -1692,7 +1692,7 @@ test_options_validate__reachable_addresses(void *ignored)
                                 "ClientPreferIPv6ORPort 1\n"
                                 "ClientPreferIPv6DirPort 1\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_ptr_op(msg, OP_EQ, NULL);
 
@@ -1713,7 +1713,7 @@ test_options_validate__use_bridges(void *ignored)
                                    "ClientUseIPv4 1\n"
                                    "ORPort 127.0.0.1:5555\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "Servers must be able to freely connect to the rest of"
             " the Internet, so they must not set UseBridges.");
@@ -1722,7 +1722,7 @@ test_options_validate__use_bridges(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("UseBridges 1\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_NE, "Servers must be able to freely connect to the rest of"
             " the Internet, so they must not set UseBridges.");
@@ -1733,7 +1733,7 @@ test_options_validate__use_bridges(void *ignored)
   tdata = get_options_test_data("UseBridges 1\n"
                                 "EntryNodes {cn}\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "You cannot set both UseBridges and EntryNodes.");
   tor_free(msg);
@@ -1741,7 +1741,7 @@ test_options_validate__use_bridges(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("UseBridges 1\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "If you set UseBridges, you must specify at least one bridge.");
@@ -1753,7 +1753,7 @@ test_options_validate__use_bridges(void *ignored)
                                 "UseEntryGuards 0\n"
                                 );
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "Setting UseBridges requires also setting UseEntryGuards.");
@@ -1765,7 +1765,7 @@ test_options_validate__use_bridges(void *ignored)
                                 "Bridge !!!\n"
                                 );
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "Bridge line did not parse. See logs for details.");
   tor_free(msg);
@@ -1788,7 +1788,7 @@ test_options_validate__entry_nodes(void *ignored)
                                          "EntryNodes {cn}\n"
                                          "UseEntryGuards 0\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "If EntryNodes is set, UseEntryGuards must be enabled.");
@@ -1798,7 +1798,7 @@ test_options_validate__entry_nodes(void *ignored)
   tdata = get_options_test_data("EntryNodes {cn}\n"
                                 "UseEntryGuards 1\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tor_free(msg);
 
@@ -1816,7 +1816,7 @@ test_options_validate__safe_logging(void *ignored)
   char *msg;
   options_test_data_t *tdata = get_options_test_data("SafeLogging 0\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_int_op(tdata->opt->SafeLogging_, OP_EQ, SAFELOG_SCRUB_NONE);
   tor_free(msg);
@@ -1824,7 +1824,7 @@ test_options_validate__safe_logging(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("SafeLogging 0\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_int_op(tdata->opt->SafeLogging_, OP_EQ, SAFELOG_SCRUB_NONE);
   tor_free(msg);
@@ -1832,7 +1832,7 @@ test_options_validate__safe_logging(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("SafeLogging Relay\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_int_op(tdata->opt->SafeLogging_, OP_EQ, SAFELOG_SCRUB_RELAY);
   tor_free(msg);
@@ -1840,7 +1840,7 @@ test_options_validate__safe_logging(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("SafeLogging 1\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_int_op(tdata->opt->SafeLogging_, OP_EQ, SAFELOG_SCRUB_ALL);
   tor_free(msg);
@@ -1848,7 +1848,7 @@ test_options_validate__safe_logging(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("SafeLogging stuffy\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "Unrecognized value '\"stuffy\"' in SafeLogging");
   tor_free(msg);
@@ -1869,14 +1869,14 @@ test_options_validate__publish_server_descriptor(void *ignored)
   options_test_data_t *tdata = get_options_test_data(
              "PublishServerDescriptor bridge\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_assert(!msg);
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("PublishServerDescriptor humma\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "Unrecognized value in PublishServerDescriptor");
   tor_free(msg);
@@ -1884,7 +1884,7 @@ test_options_validate__publish_server_descriptor(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("PublishServerDescriptor bridge, v3\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "Bridges are not supposed to publish router "
             "descriptors to the directory authorities. Please correct your "
@@ -1895,7 +1895,7 @@ test_options_validate__publish_server_descriptor(void *ignored)
   tdata = get_options_test_data("BridgeRelay 1\n"
                                 "PublishServerDescriptor v3\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "Bridges are not supposed to publish router "
             "descriptors to the directory authorities. Please correct your "
@@ -1905,7 +1905,7 @@ test_options_validate__publish_server_descriptor(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("BridgeRelay 1\n");
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_NE, "Bridges are not supposed to publish router "
             "descriptors to the directory authorities. Please correct your "
@@ -1917,7 +1917,7 @@ test_options_validate__publish_server_descriptor(void *ignored)
                                 "DirPort 999\n");
 
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   expect_log_msg("Can't set a DirPort on a bridge "
             "relay; disabling DirPort\n");
@@ -1943,7 +1943,7 @@ test_options_validate__testing(void *ignored)
   STMT_BEGIN                                                \
     free_options_test_data(tdata);                          \
   tdata = get_options_test_data(#varname " " #varval "\n"); \
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg); \
+  ret = options_validate(NULL, tdata->opt, &msg); \
   tt_str_op(msg, OP_EQ, \
             #varname " may only be changed in testing Tor networks!");  \
   tt_int_op(ret, OP_EQ, -1);                                            \
@@ -1954,7 +1954,7 @@ test_options_validate__testing(void *ignored)
                                 VALID_DIR_AUTH                          \
                                 "TestingTorNetwork 1\n");               \
                                                                         \
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);             \
+  ret = options_validate(NULL, tdata->opt, &msg);             \
   if (msg) { \
     tt_str_op(msg, OP_NE, \
               #varname " may only be changed in testing Tor networks!"); \
@@ -1965,7 +1965,7 @@ test_options_validate__testing(void *ignored)
   tdata = get_options_test_data(#varname " " #varval "\n"           \
                                 "___UsingTestNetworkDefaults 1\n"); \
                                                                         \
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);\
+  ret = options_validate(NULL, tdata->opt, &msg);\
   if (msg) { \
     tt_str_op(msg, OP_NE, \
               #varname " may only be changed in testing Tor networks!"); \
@@ -2011,7 +2011,7 @@ test_options_validate__hidserv(void *ignored)
   options_test_data_t *tdata = get_options_test_data("");
 
   tdata->opt->MinUptimeHidServDirectoryV2 = -1;
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_log_msg("MinUptimeHidServDirectoryV2 "
             "option must be at least 0 seconds. Changing to 0.\n");
@@ -2021,7 +2021,7 @@ test_options_validate__hidserv(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("RendPostPeriod 1\n" );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_log_msg("RendPostPeriod option is too short;"
             " raising to 600 seconds.\n");
@@ -2031,7 +2031,7 @@ test_options_validate__hidserv(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("RendPostPeriod 302401\n" );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_log_msg("RendPostPeriod is too large; "
             "clipping to 302400s.\n");
@@ -2054,7 +2054,7 @@ test_options_validate__path_bias(void *ignored)
 
   options_test_data_t *tdata = get_options_test_data(
                                             "PathBiasNoticeRate 1.1\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "PathBiasNoticeRate is too high. It must be between 0 and 1.0");
@@ -2062,7 +2062,7 @@ test_options_validate__path_bias(void *ignored)
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("PathBiasWarnRate 1.1\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "PathBiasWarnRate is too high. It must be between 0 and 1.0");
@@ -2070,7 +2070,7 @@ test_options_validate__path_bias(void *ignored)
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("PathBiasExtremeRate 1.1\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "PathBiasExtremeRate is too high. It must be between 0 and 1.0");
@@ -2078,7 +2078,7 @@ test_options_validate__path_bias(void *ignored)
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("PathBiasNoticeUseRate 1.1\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "PathBiasNoticeUseRate is too high. It must be between 0 and 1.0");
@@ -2086,7 +2086,7 @@ test_options_validate__path_bias(void *ignored)
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("PathBiasExtremeUseRate 1.1\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
            "PathBiasExtremeUseRate is too high. It must be between 0 and 1.0");
@@ -2109,7 +2109,7 @@ test_options_validate__bandwidth(void *ignored)
   STMT_BEGIN                                                \
   free_options_test_data(tdata); \
   tdata = get_options_test_data(#p " 3Gb\n"); \
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);     \
+  ret = options_validate(NULL, tdata->opt, &msg);     \
   tt_int_op(ret, OP_EQ, -1); \
   tt_mem_op(msg, OP_EQ, #p " (3221225471) must be at most 2147483647", 40); \
   tor_free(msg); \
@@ -2127,14 +2127,14 @@ test_options_validate__bandwidth(void *ignored)
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("RelayBandwidthRate 1000\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_u64_op(tdata->opt->RelayBandwidthBurst, OP_EQ, 1000);
   tor_free(msg);
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("RelayBandwidthBurst 1001\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_u64_op(tdata->opt->RelayBandwidthRate, OP_EQ, 1001);
   tor_free(msg);
@@ -2142,7 +2142,7 @@ test_options_validate__bandwidth(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("RelayBandwidthRate 1001\n"
                                 "RelayBandwidthBurst 1000\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "RelayBandwidthBurst must be at least equal to "
             "RelayBandwidthRate.");
@@ -2151,7 +2151,7 @@ test_options_validate__bandwidth(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("BandwidthRate 1001\n"
                                 "BandwidthBurst 1000\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "BandwidthBurst must be at least equal to BandwidthRate.");
@@ -2162,7 +2162,7 @@ test_options_validate__bandwidth(void *ignored)
                                 "BandwidthRate 1000\n"
                                 "BandwidthBurst 1000\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_u64_op(tdata->opt->BandwidthRate, OP_EQ, 1001);
   tor_free(msg);
@@ -2173,7 +2173,7 @@ test_options_validate__bandwidth(void *ignored)
                                 "RelayBandwidthBurst 1001\n"
                                 "BandwidthBurst 1000\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_u64_op(tdata->opt->BandwidthBurst, OP_EQ, 1001);
   tor_free(msg);
@@ -2182,7 +2182,7 @@ test_options_validate__bandwidth(void *ignored)
   tdata = get_options_test_data("ORPort 127.0.0.1:5555\n"
                                 "BandwidthRate 1\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "BandwidthRate is set to 1 bytes/second. For servers,"
             " it must be at least 76800.");
@@ -2193,7 +2193,7 @@ test_options_validate__bandwidth(void *ignored)
                                 "BandwidthRate 76800\n"
                                 "MaxAdvertisedBandwidth 30000\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "MaxAdvertisedBandwidth is set to 30000 bytes/second."
             " For servers, it must be at least 38400.");
@@ -2205,7 +2205,7 @@ test_options_validate__bandwidth(void *ignored)
                                 "RelayBandwidthRate 1\n"
                                 "MaxAdvertisedBandwidth 38400\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "RelayBandwidthRate is set to 1 bytes/second. For "
             "servers, it must be at least 76800.");
@@ -2218,7 +2218,7 @@ test_options_validate__bandwidth(void *ignored)
                                 "RelayBandwidthRate 76800\n"
                                 "MaxAdvertisedBandwidth 38400\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tor_free(msg);
 
@@ -2238,7 +2238,7 @@ test_options_validate__circuits(void *ignored)
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("MaxCircuitDirtiness 2592001\n");
-  options_validate(tdata->old_opt, tdata->opt, &msg);
+  options_validate(NULL, tdata->opt, &msg);
   expect_log_msg("MaxCircuitDirtiness option is too "
             "high; setting to 30 days.\n");
   tt_int_op(tdata->opt->MaxCircuitDirtiness, OP_EQ, 2592000);
@@ -2247,7 +2247,7 @@ test_options_validate__circuits(void *ignored)
   free_options_test_data(tdata);
   mock_clean_saved_logs();
   tdata = get_options_test_data("CircuitStreamTimeout 1\n");
-  options_validate(tdata->old_opt, tdata->opt, &msg);
+  options_validate(NULL, tdata->opt, &msg);
   expect_log_msg("CircuitStreamTimeout option is too"
             " short; raising to 10 seconds.\n");
   tt_int_op(tdata->opt->CircuitStreamTimeout, OP_EQ, 10);
@@ -2256,7 +2256,7 @@ test_options_validate__circuits(void *ignored)
   free_options_test_data(tdata);
   mock_clean_saved_logs();
   tdata = get_options_test_data("CircuitStreamTimeout 111\n");
-  options_validate(tdata->old_opt, tdata->opt, &msg);
+  options_validate(NULL, tdata->opt, &msg);
   expect_no_log_msg("CircuitStreamTimeout option is too"
             " short; raising to 10 seconds.\n");
   tt_int_op(tdata->opt->CircuitStreamTimeout, OP_EQ, 111);
@@ -2265,7 +2265,7 @@ test_options_validate__circuits(void *ignored)
   free_options_test_data(tdata);
   mock_clean_saved_logs();
   tdata = get_options_test_data("HeartbeatPeriod 1\n");
-  options_validate(tdata->old_opt, tdata->opt, &msg);
+  options_validate(NULL, tdata->opt, &msg);
   expect_log_msg("HeartbeatPeriod option is too short;"
             " raising to 1800 seconds.\n");
   tt_int_op(tdata->opt->HeartbeatPeriod, OP_EQ, 1800);
@@ -2274,7 +2274,7 @@ test_options_validate__circuits(void *ignored)
   free_options_test_data(tdata);
   mock_clean_saved_logs();
   tdata = get_options_test_data("HeartbeatPeriod 1982\n");
-  options_validate(tdata->old_opt, tdata->opt, &msg);
+  options_validate(NULL, tdata->opt, &msg);
   expect_no_log_msg("HeartbeatPeriod option is too short;"
             " raising to 1800 seconds.\n");
   tt_int_op(tdata->opt->HeartbeatPeriod, OP_EQ, 1982);
@@ -2285,7 +2285,7 @@ test_options_validate__circuits(void *ignored)
   tdata = get_options_test_data("LearnCircuitBuildTimeout 0\n"
                                 "CircuitBuildTimeout 1\n"
                                 );
-  options_validate(tdata->old_opt, tdata->opt, &msg);
+  options_validate(NULL, tdata->opt, &msg);
   expect_log_msg("CircuitBuildTimeout is shorter (1"
             " seconds) than the recommended minimum (10 seconds), and "
             "LearnCircuitBuildTimeout is disabled.  If tor isn't working, "
@@ -2296,7 +2296,7 @@ test_options_validate__circuits(void *ignored)
   mock_clean_saved_logs();
   tdata = get_options_test_data("CircuitBuildTimeout 11\n"
                                 );
-  options_validate(tdata->old_opt, tdata->opt, &msg);
+  options_validate(NULL, tdata->opt, &msg);
   expect_no_log_msg("CircuitBuildTimeout is shorter (1 "
             "seconds) than the recommended minimum (10 seconds), and "
             "LearnCircuitBuildTimeout is disabled.  If tor isn't working, "
@@ -2325,7 +2325,7 @@ test_options_validate__rend(void *ignored)
                  "HiddenServiceDir /Library/Tor/var/lib/tor/hidden_service/\n"
                  "HiddenServicePort 80 127.0.0.1:8080\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_log_msg("UseEntryGuards is disabled, but you"
             " have configured one or more hidden services on this Tor "
@@ -2341,7 +2341,7 @@ test_options_validate__rend(void *ignored)
             "HiddenServicePort 80 127.0.0.1:8080\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_no_log_msg("UseEntryGuards is disabled, but you"
             " have configured one or more hidden services on this Tor "
@@ -2351,7 +2351,7 @@ test_options_validate__rend(void *ignored)
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("HiddenServicePort 80 127.0.0.1:8080\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "Failed to configure rendezvous options. See logs for details.");
@@ -2359,7 +2359,7 @@ test_options_validate__rend(void *ignored)
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("HidServAuth failed\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "Failed to configure client authorization for hidden "
             "services. See logs for details.");
@@ -2386,7 +2386,7 @@ test_options_validate__single_onion(void *ignored)
   tdata = get_options_test_data("SOCKSPort 0\n"
                                 "HiddenServiceSingleHopMode 1\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "HiddenServiceSingleHopMode does not provide any "
             "server anonymity. It must be used with "
@@ -2398,7 +2398,7 @@ test_options_validate__single_onion(void *ignored)
                                 "HiddenServiceSingleHopMode 1\n"
                                 "HiddenServiceNonAnonymousMode 0\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "HiddenServiceSingleHopMode does not provide any "
             "server anonymity. It must be used with "
@@ -2410,7 +2410,7 @@ test_options_validate__single_onion(void *ignored)
                                 "HiddenServiceSingleHopMode 1\n"
                                 "HiddenServiceNonAnonymousMode 1\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_ptr_op(msg, OP_EQ, NULL);
   free_options_test_data(tdata);
@@ -2420,7 +2420,7 @@ test_options_validate__single_onion(void *ignored)
                                 "HiddenServiceSingleHopMode 1\n"
                                 "HiddenServiceNonAnonymousMode 1\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "HiddenServiceNonAnonymousMode is incompatible with "
             "using Tor as an anonymous client. Please set "
@@ -2433,7 +2433,7 @@ test_options_validate__single_onion(void *ignored)
                                 "HiddenServiceSingleHopMode 1\n"
                                 "HiddenServiceNonAnonymousMode 1\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_ptr_op(msg, OP_EQ, NULL);
   free_options_test_data(tdata);
@@ -2441,7 +2441,7 @@ test_options_validate__single_onion(void *ignored)
   tdata = get_options_test_data("SOCKSPort 5000\n"
                                 "HiddenServiceSingleHopMode 0\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_ptr_op(msg, OP_EQ, NULL);
   free_options_test_data(tdata);
@@ -2452,7 +2452,7 @@ test_options_validate__single_onion(void *ignored)
                   "HiddenServiceDir /Library/Tor/var/lib/tor/hidden_service/\n"
                   "HiddenServicePort 80 127.0.0.1:8080\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "HiddenServiceNonAnonymousMode does not provide any "
             "server anonymity. It must be used with "
@@ -2463,7 +2463,7 @@ test_options_validate__single_onion(void *ignored)
   tdata = get_options_test_data(
                   "HiddenServiceNonAnonymousMode 1\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "HiddenServiceNonAnonymousMode does not provide any "
             "server anonymity. It must be used with "
@@ -2475,7 +2475,7 @@ test_options_validate__single_onion(void *ignored)
                   "HiddenServiceDir /Library/Tor/var/lib/tor/hidden_service/\n"
                   "HiddenServicePort 80 127.0.0.1:8080\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_ptr_op(msg, OP_EQ, NULL);
   free_options_test_data(tdata);
@@ -2487,7 +2487,7 @@ test_options_validate__single_onion(void *ignored)
                   "HiddenServiceSingleHopMode 1\n"
                   "SOCKSPort 0\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_ptr_op(msg, OP_EQ, NULL);
 
@@ -2509,28 +2509,28 @@ test_options_validate__accounting(void *ignored)
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("AccountingRule something_bad\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "AccountingRule must be 'sum', 'max', 'in', or 'out'");
   tor_free(msg);
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("AccountingRule sum\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_int_op(tdata->opt->AccountingRule, OP_EQ, ACCT_SUM);
   tor_free(msg);
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("AccountingRule max\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_int_op(tdata->opt->AccountingRule, OP_EQ, ACCT_MAX);
   tor_free(msg);
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("AccountingStart fail\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "Failed to parse accounting options. See logs for details.");
@@ -2538,7 +2538,7 @@ test_options_validate__accounting(void *ignored)
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("AccountingMax 10\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tor_free(msg);
 
@@ -2553,7 +2553,7 @@ test_options_validate__accounting(void *ignored)
            "AccountingMax 10\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_log_msg("Using accounting with a hidden "
             "service and an ORPort is risky: your hidden service(s) and "
@@ -2569,7 +2569,7 @@ test_options_validate__accounting(void *ignored)
                 "AccountingMax 10\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_no_log_msg("Using accounting with a hidden "
             "service and an ORPort is risky: your hidden service(s) and "
@@ -2587,7 +2587,7 @@ test_options_validate__accounting(void *ignored)
              "AccountingMax 10\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_log_msg("Using accounting with multiple "
             "hidden services is risky: they will all turn off at the same"
@@ -2615,14 +2615,14 @@ test_options_validate__proxy(void *ignored)
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("HttpProxy 127.0.42.1\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_int_op(tdata->opt->HTTPProxyPort, OP_EQ, 80);
   tor_free(msg);
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("HttpProxy 127.0.42.1:444\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_int_op(tdata->opt->HTTPProxyPort, OP_EQ, 444);
   tor_free(msg);
@@ -2630,7 +2630,7 @@ test_options_validate__proxy(void *ignored)
   free_options_test_data(tdata);
 
   tdata = get_options_test_data("HttpProxy not_so_valid!\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "HTTPProxy failed to parse or resolve. Please fix.");
   tor_free(msg);
@@ -2650,34 +2650,34 @@ test_options_validate__proxy(void *ignored)
                                 "onetwothreonetwothreonetwothreonetwothreonetw"
                                 "othreonetwothreeonetwothreeonetwothree"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "HTTPProxyAuthenticator is too long (>= 512 chars).");
   tor_free(msg);
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("HttpProxyAuthenticator validauth\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tor_free(msg);
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("HttpsProxy 127.0.42.1\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_int_op(tdata->opt->HTTPSProxyPort, OP_EQ, 443);
   tor_free(msg);
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("HttpsProxy 127.0.42.1:444\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_int_op(tdata->opt->HTTPSProxyPort, OP_EQ, 444);
   tor_free(msg);
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("HttpsProxy not_so_valid!\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "HTTPSProxy failed to parse or resolve. Please fix.");
   tor_free(msg);
@@ -2698,55 +2698,55 @@ test_options_validate__proxy(void *ignored)
                                 "othreonetwothreeonetwothreeonetwothree"
 
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "HTTPSProxyAuthenticator is too long (>= 512 chars).");
   tor_free(msg);
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("HttpsProxyAuthenticator validauth\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tor_free(msg);
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("Socks4Proxy 127.0.42.1\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_int_op(tdata->opt->Socks4ProxyPort, OP_EQ, 1080);
   tor_free(msg);
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("Socks4Proxy 127.0.42.1:444\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_int_op(tdata->opt->Socks4ProxyPort, OP_EQ, 444);
   tor_free(msg);
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("Socks4Proxy not_so_valid!\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "Socks4Proxy failed to parse or resolve. Please fix.");
   tor_free(msg);
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("Socks5Proxy 127.0.42.1\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_int_op(tdata->opt->Socks5ProxyPort, OP_EQ, 1080);
   tor_free(msg);
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("Socks5Proxy 127.0.42.1:444\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_int_op(tdata->opt->Socks5ProxyPort, OP_EQ, 444);
   tor_free(msg);
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("Socks5Proxy not_so_valid!\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "Socks5Proxy failed to parse or resolve. Please fix.");
   tor_free(msg);
@@ -2755,7 +2755,7 @@ test_options_validate__proxy(void *ignored)
   tdata = get_options_test_data("Socks4Proxy 215.1.1.1\n"
                                 "Socks5Proxy 215.1.1.2\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "You have configured more than one proxy type. "
             "(Socks4Proxy|Socks5Proxy|HTTPSProxy)");
@@ -2764,7 +2764,7 @@ test_options_validate__proxy(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("HttpProxy 215.1.1.1\n");
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_log_msg("HTTPProxy configured, but no SOCKS "
             "proxy or HTTPS proxy configured. Watch out: this configuration "
@@ -2776,7 +2776,7 @@ test_options_validate__proxy(void *ignored)
                                 "Socks4Proxy 215.1.1.1\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_no_log_msg("HTTPProxy configured, but no SOCKS "
             "proxy or HTTPS proxy configured. Watch out: this configuration "
@@ -2788,7 +2788,7 @@ test_options_validate__proxy(void *ignored)
                                 "Socks5Proxy 215.1.1.1\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_no_log_msg("HTTPProxy configured, but no SOCKS "
             "proxy or HTTPS proxy configured. Watch out: this configuration "
@@ -2800,7 +2800,7 @@ test_options_validate__proxy(void *ignored)
                                 "HttpsProxy 215.1.1.1\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_no_log_msg(
             "HTTPProxy configured, but no SOCKS proxy or HTTPS proxy "
@@ -2811,7 +2811,7 @@ test_options_validate__proxy(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("");
   tdata->opt->Socks5ProxyUsername = tor_strdup("");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "Socks5ProxyUsername must be between 1 and 255 characters.");
@@ -2825,7 +2825,7 @@ test_options_validate__proxy(void *ignored)
                "EABCDE0123456789ABCDEABCDE0123456789ABCDEABCDE0123456789ABCDEA"
                "BCDE0123456789ABCDEABCDE0123456789ABCDEABCDE0123456789ABCDEABC"
                "DE0123456789ABCDEABCDE0123456789ABCDEABCDE0123456789");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "Socks5ProxyUsername must be between 1 and 255 characters.");
@@ -2833,7 +2833,7 @@ test_options_validate__proxy(void *ignored)
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("Socks5ProxyUsername hello_world\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "Socks5ProxyPassword must be included with "
             "Socks5ProxyUsername.");
@@ -2842,7 +2842,7 @@ test_options_validate__proxy(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("Socks5ProxyUsername hello_world\n");
   tdata->opt->Socks5ProxyPassword = tor_strdup("");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "Socks5ProxyPassword must be between 1 and 255 characters.");
@@ -2856,7 +2856,7 @@ test_options_validate__proxy(void *ignored)
                "EABCDE0123456789ABCDEABCDE0123456789ABCDEABCDE0123456789ABCDEA"
                "BCDE0123456789ABCDEABCDE0123456789ABCDEABCDE0123456789ABCDEABC"
                "DE0123456789ABCDEABCDE0123456789ABCDEABCDE0123456789");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "Socks5ProxyPassword must be between 1 and 255 characters.");
@@ -2865,13 +2865,13 @@ test_options_validate__proxy(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("Socks5ProxyUsername hello_world\n"
                                 "Socks5ProxyPassword world_hello\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tor_free(msg);
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("Socks5ProxyPassword hello_world\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "Socks5ProxyPassword must be included with "
             "Socks5ProxyUsername.");
@@ -2898,7 +2898,7 @@ test_options_validate__control(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data(
                          "HashedControlPassword something_incorrect\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "Bad HashedControlPassword: wrong length or bad encoding");
@@ -2908,7 +2908,7 @@ test_options_validate__control(void *ignored)
   tdata = get_options_test_data("HashedControlPassword 16:872860B76453A77D60CA"
                                 "2BB8C1A7042072093276A3D701AD684053EC4C\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tor_free(msg);
 
@@ -2916,7 +2916,7 @@ test_options_validate__control(void *ignored)
   tdata = get_options_test_data(
                    "__HashedControlSessionPassword something_incorrect\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "Bad HashedControlSessionPassword: wrong length or "
             "bad encoding");
@@ -2927,7 +2927,7 @@ test_options_validate__control(void *ignored)
                                 "3A77D60CA2BB8C1A7042072093276A3D701AD684053EC"
                                 "4C\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tor_free(msg);
 
@@ -2935,7 +2935,7 @@ test_options_validate__control(void *ignored)
   tdata = get_options_test_data(
                            "__OwningControllerProcess something_incorrect\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "Bad OwningControllerProcess: invalid PID");
   tor_free(msg);
@@ -2943,7 +2943,7 @@ test_options_validate__control(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("__OwningControllerProcess 123\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tor_free(msg);
 
@@ -2951,7 +2951,7 @@ test_options_validate__control(void *ignored)
   tdata = get_options_test_data("ControlPort 127.0.0.1:1234\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_log_msg(
             "ControlPort is open, but no authentication method has been "
@@ -2966,7 +2966,7 @@ test_options_validate__control(void *ignored)
                                 "2BB8C1A7042072093276A3D701AD684053EC4C\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_no_log_msg(
             "ControlPort is open, but no authentication method has been "
@@ -2982,7 +2982,7 @@ test_options_validate__control(void *ignored)
                                 "4C\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_no_log_msg(
             "ControlPort is open, but no authentication method has been "
@@ -2996,7 +2996,7 @@ test_options_validate__control(void *ignored)
                                 "CookieAuthentication 1\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_no_log_msg(
             "ControlPort is open, but no authentication method has been "
@@ -3009,7 +3009,7 @@ test_options_validate__control(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("ControlSocket unix:/tmp WorldWritable\n");
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_log_msg(
             "ControlSocket is world writable, but no authentication method has"
@@ -3024,7 +3024,7 @@ test_options_validate__control(void *ignored)
                                 "2BB8C1A7042072093276A3D701AD684053EC4C\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_no_log_msg(
             "ControlSocket is world writable, but no authentication method has"
@@ -3040,7 +3040,7 @@ test_options_validate__control(void *ignored)
                                 "4C\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_no_log_msg(
             "ControlSocket is world writable, but no authentication method has"
@@ -3054,7 +3054,7 @@ test_options_validate__control(void *ignored)
                                 "CookieAuthentication 1\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_no_log_msg(
             "ControlSocket is world writable, but no authentication method has"
@@ -3068,7 +3068,7 @@ test_options_validate__control(void *ignored)
   tdata = get_options_test_data("CookieAuthFileGroupReadable 1\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_log_msg(
             "CookieAuthFileGroupReadable is set, but will have no effect: you "
@@ -3081,7 +3081,7 @@ test_options_validate__control(void *ignored)
                                 "CookieAuthFile /tmp/somewhere\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_no_log_msg(
             "CookieAuthFileGroupReadable is set, but will have no effect: you "
@@ -3115,7 +3115,7 @@ test_options_validate__families(void *ignored)
                                 "DirCache 1\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_log_msg(
             "Listing a family for a bridge relay is not supported: it can "
@@ -3127,7 +3127,7 @@ test_options_validate__families(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("MyFamily home\n");
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_no_log_msg(
             "Listing a family for a bridge relay is not supported: it can "
@@ -3139,7 +3139,7 @@ test_options_validate__families(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("MyFamily !\n");
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "Invalid nickname '!' in MyFamily line");
   tor_free(msg);
@@ -3148,7 +3148,7 @@ test_options_validate__families(void *ignored)
   tdata = get_options_test_data("NodeFamily foo\n"
                                 "NodeFamily !\n");
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_assert(!msg);
   tor_free(msg);
@@ -3172,7 +3172,7 @@ test_options_validate__addr_policies(void *ignored)
   tdata = get_options_test_data("ExitPolicy !!!\n"
                                 "ExitRelay 1\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "Error in ExitPolicy entry.");
   tor_free(msg);
@@ -3197,7 +3197,7 @@ test_options_validate__dir_auth(void *ignored)
                                 VALID_ALT_DIR_AUTH
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "Directory authority/fallback line did not parse. See logs for "
@@ -3208,7 +3208,7 @@ test_options_validate__dir_auth(void *ignored)
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("TestingTorNetwork 1\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "TestingTorNetwork may only be configured in combination with a "
@@ -3220,7 +3220,7 @@ test_options_validate__dir_auth(void *ignored)
   tdata = get_options_test_data(VALID_DIR_AUTH
                                 "TestingTorNetwork 1\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tor_free(msg);
 
@@ -3228,7 +3228,7 @@ test_options_validate__dir_auth(void *ignored)
   tdata = get_options_test_data("TestingTorNetwork 1\n"
                                 VALID_ALT_DIR_AUTH
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "TestingTorNetwork may only be configured in combination with a "
@@ -3240,7 +3240,7 @@ test_options_validate__dir_auth(void *ignored)
   tdata = get_options_test_data("TestingTorNetwork 1\n"
                                 VALID_ALT_BRIDGE_AUTH
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "TestingTorNetwork may only be configured in "
             "combination with a non-default set of DirAuthority or both of "
@@ -3252,7 +3252,7 @@ test_options_validate__dir_auth(void *ignored)
                                 VALID_ALT_BRIDGE_AUTH
                                 "TestingTorNetwork 1\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tor_free(msg);
 
@@ -3276,7 +3276,7 @@ test_options_validate__transport(void *ignored)
   tdata = get_options_test_data("ClientTransportPlugin !!\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "Invalid client transport line. See logs for details.");
@@ -3288,14 +3288,14 @@ test_options_validate__transport(void *ignored)
   tdata = get_options_test_data("ClientTransportPlugin foo exec bar\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tor_free(msg);
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("ServerTransportPlugin !!\n");
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "Invalid server transport line. See logs for details.");
@@ -3306,7 +3306,7 @@ test_options_validate__transport(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("ServerTransportPlugin foo exec bar\n");
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_log_msg(
             "Tor is not configured as a relay but you specified a "
@@ -3322,7 +3322,7 @@ test_options_validate__transport(void *ignored)
                                 "MaxAdvertisedBandwidth 38500\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_no_log_msg(
             "Tor is not configured as a relay but you specified a "
@@ -3333,7 +3333,7 @@ test_options_validate__transport(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("ServerTransportListenAddr foo 127.0.0.42:55\n"
                                 "ServerTransportListenAddr !\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "ServerTransportListenAddr did not parse. See logs for details.");
@@ -3343,7 +3343,7 @@ test_options_validate__transport(void *ignored)
   tdata = get_options_test_data("ServerTransportListenAddr foo 127.0.0.42:55\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_log_msg(
             "You need at least a single managed-proxy to specify a transport "
@@ -3360,7 +3360,7 @@ test_options_validate__transport(void *ignored)
                                 "MaxAdvertisedBandwidth 38500\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_no_log_msg(
             "You need at least a single managed-proxy to specify a transport "
@@ -3389,7 +3389,7 @@ test_options_validate__constrained_sockets(void *ignored)
                                 "ConstrainedSockSize 0\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "ConstrainedSockSize is invalid.  Must be a value "
             "between 2048 and 262144 in 1024 byte increments.");
@@ -3400,7 +3400,7 @@ test_options_validate__constrained_sockets(void *ignored)
                                 "ConstrainedSockSize 263168\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "ConstrainedSockSize is invalid.  Must be a value "
             "between 2048 and 262144 in 1024 byte increments.");
@@ -3411,7 +3411,7 @@ test_options_validate__constrained_sockets(void *ignored)
                                 "ConstrainedSockSize 2047\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "ConstrainedSockSize is invalid.  Must be a value "
             "between 2048 and 262144 in 1024 byte increments.");
@@ -3424,7 +3424,7 @@ test_options_validate__constrained_sockets(void *ignored)
                                 "DirCache 1\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_log_msg("You have requested constrained "
             "socket buffers while also serving directory entries via DirPort."
@@ -3437,7 +3437,7 @@ test_options_validate__constrained_sockets(void *ignored)
                                 "ConstrainedSockSize 2048\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_no_log_msg(
             "You have requested constrained socket buffers while also serving"
@@ -3467,7 +3467,7 @@ test_options_validate__v3_auth(void *ignored)
                                 "V3AuthDistDelay 1000\n"
                                 "V3AuthVotingInterval 1000\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "V3AuthVoteDelay plus V3AuthDistDelay must be less than half "
@@ -3476,7 +3476,7 @@ test_options_validate__v3_auth(void *ignored)
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("V3AuthVoteDelay 1\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "V3AuthVoteDelay is way too low.");
   tor_free(msg);
@@ -3484,7 +3484,7 @@ test_options_validate__v3_auth(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("V3AuthVoteDelay 1\n"
                                 "TestingTorNetwork 1\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "V3AuthVoteDelay is way too low.");
   tor_free(msg);
@@ -3495,7 +3495,7 @@ test_options_validate__v3_auth(void *ignored)
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("V3AuthDistDelay 1\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "V3AuthDistDelay is way too low.");
   tor_free(msg);
@@ -3504,7 +3504,7 @@ test_options_validate__v3_auth(void *ignored)
   tdata = get_options_test_data("V3AuthDistDelay 1\n"
                                 "TestingTorNetwork 1\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "V3AuthDistDelay is way too low.");
   tor_free(msg);
@@ -3516,7 +3516,7 @@ test_options_validate__v3_auth(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("V3AuthNIntervalsValid 1\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "V3AuthNIntervalsValid must be at least 2.");
   tor_free(msg);
@@ -3526,7 +3526,7 @@ test_options_validate__v3_auth(void *ignored)
                                 "V3AuthDistDelay 49\n"
                                 "V3AuthVotingInterval 200\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "V3AuthVotingInterval is insanely low.");
   tor_free(msg);
@@ -3536,7 +3536,7 @@ test_options_validate__v3_auth(void *ignored)
                                 "V3AuthDistDelay 49\n"
                                 "V3AuthVotingInterval 200000\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "V3AuthVotingInterval is insanely high.");
   tor_free(msg);
@@ -3547,7 +3547,7 @@ test_options_validate__v3_auth(void *ignored)
                                 "V3AuthVotingInterval 1441\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_log_msg("V3AuthVotingInterval does not divide"
             " evenly into 24 hours.\n");
@@ -3559,7 +3559,7 @@ test_options_validate__v3_auth(void *ignored)
                                 "V3AuthVotingInterval 1440\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_no_log_msg("V3AuthVotingInterval does not divide"
             " evenly into 24 hours.\n");
@@ -3573,7 +3573,7 @@ test_options_validate__v3_auth(void *ignored)
                                 "TestingTorNetwork 1\n"
                                 );
   mock_clean_saved_logs();
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   expect_log_msg("V3AuthVotingInterval is very low. "
             "This may lead to failure to synchronise for a consensus.\n");
@@ -3589,7 +3589,7 @@ test_options_validate__v3_auth(void *ignored)
                                    /* VALID_DIR_AUTH */
   /*                               "TestingTorNetwork 1\n" */
   /*                               ); */
-  /* ret = options_validate(tdata->old_opt, tdata->opt, */
+  /* ret = options_validate(NULL, tdata->opt, */
   /*                        tdata->def_opt, 0, &msg); */
   /* tt_int_op(ret, OP_EQ, -1); */
   /* tt_str_op(msg, OP_EQ, "V3AuthVotingInterval is insanely low."); */
@@ -3599,7 +3599,7 @@ test_options_validate__v3_auth(void *ignored)
                                 VALID_DIR_AUTH
                                 "TestingTorNetwork 1\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "TestingV3AuthInitialVoteDelay is way too low.");
   tor_free(msg);
@@ -3609,7 +3609,7 @@ test_options_validate__v3_auth(void *ignored)
                                 VALID_DIR_AUTH
                                 "TestingTorNetwork 1\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "TestingV3AuthInitialDistDelay is way too low.");
   tor_free(msg);
@@ -3619,7 +3619,7 @@ test_options_validate__v3_auth(void *ignored)
                                 "TestingTorNetwork 1\n"
                                 );
   tdata->opt->TestingV3AuthVotingStartOffset = 100000;
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "TestingV3AuthVotingStartOffset is higher than the "
             "voting interval.");
@@ -3630,7 +3630,7 @@ test_options_validate__v3_auth(void *ignored)
                                 "TestingTorNetwork 1\n"
                                 );
   tdata->opt->TestingV3AuthVotingStartOffset = -1;
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "TestingV3AuthVotingStartOffset must be non-negative.");
@@ -3641,7 +3641,7 @@ test_options_validate__v3_auth(void *ignored)
                                 "TestingTorNetwork 1\n"
                                 "TestingV3AuthInitialVotingInterval 4\n"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "TestingV3AuthInitialVotingInterval is insanely low.");
   tor_free(msg);
@@ -3663,7 +3663,7 @@ test_options_validate__virtual_addr(void *ignored)
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("VirtualAddrNetworkIPv4 !!");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "Error parsing VirtualAddressNetwork !!");
   tor_free(msg);
@@ -3671,7 +3671,7 @@ test_options_validate__virtual_addr(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("VirtualAddrNetworkIPv6 !!"
                                 );
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "Error parsing VirtualAddressNetworkIPv6 !!");
   tor_free(msg);
@@ -3699,7 +3699,7 @@ test_options_validate__testing_options(void *ignored)
                                 "TestingTorNetwork 1\n"                 \
                                 );                                      \
   tdata->opt-> name = low_val;                                       \
-  ret = options_validate(tdata->old_opt, tdata->opt,  &msg);            \
+  ret = options_validate(NULL, tdata->opt,  &msg);            \
   tt_int_op(ret, OP_EQ, -1);                                            \
   tt_str_op(msg, OP_EQ, #name " " err_low);                \
   tor_free(msg); \
@@ -3710,7 +3710,7 @@ test_options_validate__testing_options(void *ignored)
                                 );                                      \
   tdata->opt->  name = high_val;                                      \
   mock_clean_saved_logs();                                              \
-  ret = options_validate(tdata->old_opt, tdata->opt,  &msg);            \
+  ret = options_validate(NULL, tdata->opt,  &msg);            \
   tt_int_op(ret, OP_EQ, 0);                                             \
   expect_log_msg( #name " is insanely high.\n"); \
   tor_free(msg); \
@@ -3727,7 +3727,7 @@ test_options_validate__testing_options(void *ignored)
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("TestingEnableConnBwEvent 1\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "TestingEnableConnBwEvent may only be changed in "
             "testing Tor networks!");
@@ -3740,7 +3740,7 @@ test_options_validate__testing_options(void *ignored)
                                 "___UsingTestNetworkDefaults 0\n"
                                 );
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_assert(!msg);
   tor_free(msg);
@@ -3752,14 +3752,14 @@ test_options_validate__testing_options(void *ignored)
                                 "___UsingTestNetworkDefaults 1\n"
                                 );
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_assert(!msg);
   tor_free(msg);
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("TestingEnableCellStatsEvent 1\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ, "TestingEnableCellStatsEvent may only be changed in "
             "testing Tor networks!");
@@ -3772,7 +3772,7 @@ test_options_validate__testing_options(void *ignored)
                                 "___UsingTestNetworkDefaults 0\n"
                                 );
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_assert(!msg);
   tor_free(msg);
@@ -3784,7 +3784,7 @@ test_options_validate__testing_options(void *ignored)
                                 "___UsingTestNetworkDefaults 1\n"
                                 );
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_assert(!msg);
   tor_free(msg);
@@ -3796,7 +3796,7 @@ test_options_validate__testing_options(void *ignored)
                                 "___UsingTestNetworkDefaults 0\n"
                                 );
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_assert(!msg);
   tor_free(msg);
@@ -3808,7 +3808,7 @@ test_options_validate__testing_options(void *ignored)
                                 "___UsingTestNetworkDefaults 1\n"
                                 );
 
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_assert(!msg);
   tor_free(msg);
@@ -3830,7 +3830,7 @@ test_options_validate__accel(void *ignored)
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("AccelName foo\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_int_op(tdata->opt->HardwareAccel, OP_EQ, 1);
   tor_free(msg);
@@ -3838,14 +3838,14 @@ test_options_validate__accel(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("AccelName foo\n");
   tdata->opt->HardwareAccel = 2;
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tt_int_op(tdata->opt->HardwareAccel, OP_EQ, 2);
   tor_free(msg);
 
   free_options_test_data(tdata);
   tdata = get_options_test_data("AccelDir 1\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, -1);
   tt_str_op(msg, OP_EQ,
             "Can't use hardware crypto accelerator dir without engine name.");
@@ -3854,7 +3854,7 @@ test_options_validate__accel(void *ignored)
   free_options_test_data(tdata);
   tdata = get_options_test_data("AccelDir 1\n"
                                 "AccelName something\n");
-  ret = options_validate(tdata->old_opt, tdata->opt, &msg);
+  ret = options_validate(NULL, tdata->opt, &msg);
   tt_int_op(ret, OP_EQ, 0);
   tor_free(msg);
 





More information about the tor-commits mailing list