[tor-commits] [stem/master] Drop tor man page workarounds

atagar at torproject.org atagar at torproject.org
Sun Dec 6 21:57:11 UTC 2015


commit f65af3782f39e966197ad2e911f39a36d2e2d2d2
Author: Damian Johnson <atagar at torproject.org>
Date:   Wed Nov 25 07:59:24 2015 -0800

    Drop tor man page workarounds
    
    Nick's merged our man page fixes so we can now drop our workarounds - yay! \o/
    
      https://trac.torproject.org/projects/tor/ticket/17666
    
    I'm dropping our assertions on exact counts of configuration options since
    they'll break with every man page update and aren't really helpful. Instead
    just checking that the categories themselves still exist and that we recognize
    all the categories.
---
 stem/settings.cfg    |   14 +++++++-------
 test/integ/manual.py |   52 +++++++++-----------------------------------------
 2 files changed, 16 insertions(+), 50 deletions(-)

diff --git a/stem/settings.cfg b/stem/settings.cfg
index d770dfc..78bf014 100644
--- a/stem/settings.cfg
+++ b/stem/settings.cfg
@@ -22,7 +22,7 @@ manual.important User
 manual.important Bridge
 manual.important ExcludeNodes
 manual.important MaxCircuitDirtiness
-manual.important SOCKSPort
+manual.important SocksPort
 manual.important UseBridges
 
 manual.important BridgeRelay
@@ -148,8 +148,8 @@ manual.summary.MaxCircuitDirtiness Duration for reusing constructed circuits
 manual.summary.MaxClientCircuitsPending Number of circuits that can be in construction at once
 manual.summary.NodeFamily Define relays as belonging to a family
 manual.summary.EnforceDistinctSubnets Prevent use of multiple relays from the same subnet on a circuit
-manual.summary.SOCKSPort Port for using tor as a Socks proxy
-manual.summary.SOCKSListenAddress Address from which Socks connections can be made
+manual.summary.SocksPort Port for using tor as a Socks proxy
+manual.summary.SocksListenAddress Address from which Socks connections can be made
 manual.summary.SocksPolicy Access policy for the pocks port
 manual.summary.SocksTimeout Time until idle or unestablished socks connections are closed
 manual.summary.TokenBucketRefillInterval Frequency at which exhausted connections are checked for new traffic
@@ -259,7 +259,6 @@ manual.summary.OfflineMasterKey Don't generate the master secret key
 # Directory Server Options
 
 manual.summary.DirPortFrontPage Publish this html file on the DirPort
-manual.summary.HidServDirectoryV2 Toggles accepting version 2 hidden service descriptors
 manual.summary.DirPort Port for directory connections
 manual.summary.DirListenAddress Address the directory service is bound to
 manual.summary.DirPolicy Access policy for the DirPort
@@ -270,7 +269,7 @@ manual.summary.AuthoritativeDirectory Act as a directory authority
 manual.summary.V3AuthoritativeDirectory Generates a version 3 consensus
 manual.summary.VersioningAuthoritativeDirectory Provides opinions on recommended versions of tor
 manual.summary.RecommendedVersions Suggested versions of tor
-manual.summary.RecommendedPackageVersions Suggested versions of applications other than tor
+manual.summary.RecommendedPackages Suggested versions of applications other than tor
 manual.summary.RecommendedClientVersions Tor versions believed to be safe for clients
 manual.summary.BridgeAuthoritativeDir Acts as a bridge authority
 manual.summary.MinUptimeHidServDirectoryV2 Required uptime before accepting hidden service directory
@@ -297,7 +296,6 @@ manual.summary.V3AuthNIntervalsValid Number of voting intervals a consensus is v
 manual.summary.V3BandwidthsFile Path to a file containing measured relay bandwidths
 manual.summary.V3AuthUseLegacyKey Signs consensus with both the current and legacy keys
 manual.summary.RephistTrackTime Discards old, unchanged reliability information
-manual.summary.VoteOnHidServDirectoriesV2 Determines if the authority votes on hidden service directories
 manual.summary.AuthDirHasIPv6Connectivity Descriptors can be retrieved over the authority's IPv6 ORPort
 manual.summary.MinMeasuredBWsForAuthToIgnoreAdvertised Total measured value before advertised bandwidths are treated as unreliable
 
@@ -348,5 +346,7 @@ manual.summary.TestingEnableTbEmptyEvent Allow controllers to request TB_EMPTY e
 manual.summary.TestingMinExitFlagThreshold Lower bound for assigning the Exit flag
 manual.summary.TestingLinkCertLifetime Duration of our ed25519 certificate
 manual.summary.TestingAuthKeyLifetime Duration for our ed25519 signing key
-manual.summary.TestingLinkKeySlop Time before expiration that we replace our ed25519 key
+manual.summary.TestingLinkKeySlop Time before expiration that we replace our ed25519 link key
+manual.summary.TestingAuthKeySlop Time before expiration that we replace our ed25519 authentication key
+manual.summary.TestingSigningKeySlop Time before expiration that we replace our ed25519 signing key
 
diff --git a/test/integ/manual.py b/test/integ/manual.py
index 72410d2..6a01526 100644
--- a/test/integ/manual.py
+++ b/test/integ/manual.py
@@ -37,17 +37,6 @@ EXPECTED_CATEGORIES = set([
 EXPECTED_CLI_OPTIONS = set(['-h, -help', '-f FILE', '--allow-missing-torrc', '--defaults-torrc FILE', '--ignore-missing-torrc', '--hash-password PASSWORD', '--list-fingerprint', '--verify-config', '--service install [--options command-line options]', '--service remove|start|stop', '--nt-service', '--list-torrc-options', '--version', '--quiet|--hush'])
 EXPECTED_SIGNALS = set(['SIGTERM', 'SIGINT', 'SIGHUP', 'SIGUSR1', 'SIGUSR2', 'SIGCHLD', 'SIGPIPE', 'SIGXFSZ'])
 
-EXPECTED_OPTION_COUNTS = {
-  Category.GENERAL: 74,
-  Category.CLIENT: 86,
-  Category.RELAY: 47,
-  Category.DIRECTORY: 5,
-  Category.AUTHORITY: 34,
-  Category.HIDDEN_SERVICE: 11,
-  Category.TESTING: 32,
-  Category.UNKNOWN: 0,
-}
-
 EXPECTED_DESCRIPTION = """
 Tor is a connection-oriented anonymizing communication service. Users choose a source-routed path through a set of nodes, and negotiate a "virtual circuit" through the network, in which each node knows its predecessor and successor, but no others. Traffic flowing down the circuit is unwrapped by a symmetric key at each node, which reveals the downstream node.
 
@@ -181,8 +170,14 @@ class TestManual(unittest.TestCase):
     assert_equal('number of files', 31, len(manual.files))
     assert_equal('lib path description', 'The tor process stores keys and other data here.', manual.files['@LOCALSTATEDIR@/lib/tor/'])
 
-    for category, expected_count in EXPECTED_OPTION_COUNTS.items():
-      assert_equal('number of %s category entries' % category, expected_count, len([entry for entry in manual.config_options.values() if entry.category == category]))
+    for category in Category:
+      if len([entry for entry in manual.config_options.values() if entry.category == category]) == 0 and category != Category.UNKNOWN:
+        self.fail('We had an empty %s section, did we intentionally drop it?' % category)
+
+    unknown_options = [entry for entry in manual.config_options.values() if entry.category == Category.UNKNOWN]
+
+    if unknown_options:
+      self.fail("We don't recognize the category for the %s options. Maybe a new man page section? If so then please update the Category enum in stem/manual.py." % ', '.join(unknown_options))
 
     option = manual.config_options['BandwidthRate']
     self.assertEqual(Category.GENERAL, option.category)
@@ -230,15 +225,7 @@ class TestManual(unittest.TestCase):
     present = set(manual.config_options.keys())
     expected = set([key[15:] for key in stem.manual._config(lowercase = False) if key.startswith('manual.summary.')])
 
-    # TODO: Typo in man page (s/TestingLinkCertifetime/TestingLinkCertLifetime)
-
-    present.remove('TestingLinkCertifetime')
-    present.add('TestingLinkCertLifetime')
-
-    # TODO: The 'Recognized' config name is due to our man page being slightly
-    # malformed. Sending a tor patch later to fix it.
-
-    missing_options = present.difference(expected).difference(set(['Recognized']))
+    missing_options = present.difference(expected)
     extra_options = expected.difference(present)
 
     if missing_options:
@@ -268,27 +255,6 @@ class TestManual(unittest.TestCase):
       if 'HiddenServiceOptions' in config_options_in_tor:
         config_options_in_tor.remove('HiddenServiceOptions')
 
-      # TODO: Addressing some errors in the man page I'll be sending fixes for.
-
-      config_options_in_tor.remove('SocksPort')
-      config_options_in_tor.add('SOCKSPort')
-
-      config_options_in_tor.remove('SocksListenAddress')
-      config_options_in_tor.add('SOCKSListenAddress')
-
-      config_options_in_tor.remove('TestingLinkCertLifetime')
-      config_options_in_tor.add('TestingLinkCertifetime')
-
-      config_options_in_tor.remove('TestingSigningKeySlop')
-      config_options_in_tor.remove('TestingAuthKeySlop')
-
-      config_options_in_tor.remove('RecommendedPackages')
-      config_options_in_tor.add('RecommendedPackageVersions')
-
-      config_options_in_tor.add('Recognized')
-      config_options_in_tor.add('VoteOnHidServDirectoriesV2')
-      config_options_in_tor.add('HidServDirectoryV2')
-
       # TODO: Looks like options we should remove from tor...
       #
       # https://trac.torproject.org/projects/tor/ticket/17665





More information about the tor-commits mailing list