X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=test.py;h=10ca2d6ba3a21d44d011d31becd6d8bda47cfed0;hb=abdb21e83bad4de622789885548d7f0ed36d5cba;hp=cfac85b572851815e030689792ed4611fbaabd10;hpb=be126fc5cd40e26479c50fee4f64cc478f1eb55a;p=quix0rs-apt-p2p.git diff --git a/test.py b/test.py index cfac85b..10ca2d6 100755 --- a/test.py +++ b/test.py @@ -1,9 +1,9 @@ #!/usr/bin/env python -"""Automated tests of the apt-dht functionality. +"""Automated tests of the apt-p2p functionality. This script runs several automatic tests of some of the functionality in -the apt-dht program. +the apt-p2p program. @type tests: C{dictionary} @var tests: all of the tests that can be run. @@ -15,11 +15,11 @@ the apt-dht program. The bootstrap nodes keys are integers, which must be in the range 1-9. The values are the dictionary of string formatting values for creating - the apt-dht configuration file (see L{apt_dht_conf_template} below). + the apt-p2p configuration file (see L{apt_p2p_conf_template} below). The downloaders keys are also integers in the range 1-99. The values are - the dictionary of string formatting values for creating the apt-dht - configuration file (see L{apt_dht_conf_template} below). + the dictionary of string formatting values for creating the apt-p2p + configuration file (see L{apt_p2p_conf_template} below). The apt-get commands' list elements are tuples with 2 elements: the downloader to run the command on, and the list of command-line @@ -312,7 +312,7 @@ Debug } """ -apt_dht_conf_template = """ +apt_p2p_conf_template = """ [DEFAULT] # Port to listen on for all requests (TCP and UDP) @@ -337,15 +337,19 @@ LOCAL_OK = yes # to reload when a new request arrives. UNLOAD_PACKAGES_CACHE = 5m +# Refresh the DHT keys after this much time has passed. +# This should be a time slightly less than the DHT's KEY_EXPIRE value. +KEY_REFRESH = 57m + # Which DHT implementation to use. # It must be possile to do "from .DHT import DHT" to get a class that # implements the IDHT interface. -DHT = apt_dht_Khashmir +DHT = apt_p2p_Khashmir # Whether to only run the DHT (for providing only a bootstrap node) DHT-ONLY = %(DHT-ONLY)s -[apt_dht_Khashmir] +[apt_p2p_Khashmir] # bootstrap nodes to contact to join the DHT BOOTSTRAP = %(BOOTSTRAP)s @@ -367,6 +371,14 @@ CONCURRENT_REQS = 4 # how many hosts to post to STORE_REDUNDANCY = 3 +# How many values to attempt to retrieve from the DHT. +# Setting this to 0 will try and get all values (which could take a while if +# a lot of nodes have values). Setting it negative will try to get that +# number of results from only the closest STORE_REDUNDANCY nodes to the hash. +# The default is a large negative number so all values from the closest +# STORE_REDUNDANCY nodes will be retrieved. +RETRIEVE_VALUES = -10000 + # how many times in a row a node can fail to respond before it's booted from the routing table MAX_FAILURES = 3 @@ -376,14 +388,8 @@ MIN_PING_INTERVAL = 15m # refresh buckets that haven't been touched in this long BUCKET_STALENESS = 1h -# time before expirer starts running -KEINITIAL_DELAY = 15s - -# time between expirer runs -KE_DELAY = 20m - # expire entries older than this -KE_AGE = 1h +KEY_EXPIRE = 1h # whether to spew info about the requests/responses in the protocol SPEW = yes @@ -573,7 +579,7 @@ def start_downloader(bootstrap_addresses, num_down, options = {}, @param num_down: the number of the downloader to use @type options: C{dictionary} @param options: the dictionary of string formatting values for creating - the apt-dht configuration file (see L{apt_dht_conf_template} above). + the apt-p2p configuration file (see L{apt_p2p_conf_template} above). (optional, defaults to only using the default arguments) @type mirror: C{string} @param mirror: the Debian mirror to use @@ -629,20 +635,20 @@ def start_downloader(bootstrap_addresses, num_down, options = {}, for k in options: defaults[k] = options[k] - f = open(join([downloader_dir, 'apt-dht.conf']), 'w') - f.write(apt_dht_conf_template % defaults) + f = open(join([downloader_dir, 'apt-p2p.conf']), 'w') + f.write(apt_p2p_conf_template % defaults) f.close() - pid = start('python', [join([sys.path[0], 'apt-dht.py']), - '--config-file=' + join([downloader_dir, 'apt-dht.conf']), - '--log-file=' + join([downloader_dir, 'apt-dht.log']),], + pid = start('python', [join([sys.path[0], 'apt-p2p.py']), + '--config-file=' + join([downloader_dir, 'apt-p2p.conf']), + '--log-file=' + join([downloader_dir, 'apt-p2p.log']),], downloader_dir) return pid def start_bootstrap(bootstrap_addresses, num_boot, options = [], clean = True): """Initialize a new bootstrap node process. - The default arguments specified to the apt-dht invocation are + The default arguments specified to the apt-p2p invocation are the state file and port to use. Any additional arguments needed should be specified by L{options}. @@ -681,13 +687,13 @@ def start_bootstrap(bootstrap_addresses, num_boot, options = [], clean = True): for k in options: defaults[k] = options[k] - f = open(join([bootstrap_dir, 'apt-dht.conf']), 'w') - f.write(apt_dht_conf_template % defaults) + f = open(join([bootstrap_dir, 'apt-p2p.conf']), 'w') + f.write(apt_p2p_conf_template % defaults) f.close() - pid = start('python', [join([sys.path[0], 'apt-dht.py']), - '--config-file=' + join([bootstrap_dir, 'apt-dht.conf']), - '--log-file=' + join([bootstrap_dir, 'apt-dht.log']),], + pid = start('python', [join([sys.path[0], 'apt-p2p.py']), + '--config-file=' + join([bootstrap_dir, 'apt-p2p.conf']), + '--log-file=' + join([bootstrap_dir, 'apt-p2p.log']),], bootstrap_dir) return pid