Cache returns errors if apt closes the connection and deletes the incomplete files.
[quix0rs-apt-p2p.git] / test.py
diff --git a/test.py b/test.py
index f861b6561f99e58a3426682ccba94fb3b7c7808b..150b5c2dbf5d4aec085c3880f0c42c5e7f6d7c8e 100755 (executable)
--- a/test.py
+++ b/test.py
@@ -51,7 +51,6 @@ tests = {'1': ('Start a single bootstrap and downloader, test updating and downl
               (1, ['install', 'asis-doc']),
               (1, ['install', 'bison-doc']),
               (1, ['install', 'crash-whitepaper']),
-              (1, ['install', 'doc-iana']),
               ]),
 
          '2': ('Start a single bootstrap and 2 downloaders to test downloading from a peer.',
@@ -86,35 +85,35 @@ tests = {'1': ('Start a single bootstrap and downloader, test updating and downl
                 5: {},
                 6: {}},
                [(1, ['update']),
-                (2, ['update']),
-                (3, ['update']),
                 (1, ['install', 'aboot-base']),
                 (1, ['install', 'ada-reference-manual']),
                 (1, ['install', 'fop-doc']),
-                (1, ['install', 'doc-iana']),
+                (1, ['install', 'crash-whitepaper']),
+                (2, ['update']),
                 (2, ['install', 'aboot-base']),
                 (2, ['install', 'ada-reference-manual']),
                 (2, ['install', 'fop-doc']),
-                (2, ['install', 'doc-iana']),
+                (2, ['install', 'crash-whitepaper']),
+                (3, ['update']),
                 (3, ['install', 'aboot-base']),
                 (3, ['install', 'ada-reference-manual']),
                 (3, ['install', 'fop-doc']),
-                (3, ['install', 'doc-iana']),
+                (3, ['install', 'crash-whitepaper']),
                 (4, ['update']),
                 (4, ['install', 'aboot-base']),
                 (4, ['install', 'ada-reference-manual']),
                 (4, ['install', 'fop-doc']),
-                (4, ['install', 'doc-iana']),
+                (4, ['install', 'crash-whitepaper']),
                 (5, ['update']),
                 (5, ['install', 'aboot-base']),
                 (5, ['install', 'ada-reference-manual']),
                 (5, ['install', 'fop-doc']),
-                (5, ['install', 'doc-iana']),
+                (5, ['install', 'crash-whitepaper']),
                 (6, ['update']),
                 (6, ['install', 'aboot-base']),
                 (6, ['install', 'ada-reference-manual']),
                 (6, ['install', 'fop-doc']),
-                (6, ['install', 'doc-iana']),
+                (6, ['install', 'crash-whitepaper']),
                 ]),
 
          '4': ('Start a single bootstrap and 1 downloader, requesting the same' +
@@ -125,17 +124,17 @@ tests = {'1': ('Start a single bootstrap and downloader, test updating and downl
                 (1, ['install', 'aboot-base']),
                 (1, ['install', 'ada-reference-manual']),
                 (1, ['install', 'fop-doc']),
-                (1, ['install', 'doc-iana']),
+                (1, ['install', 'crash-whitepaper']),
                 (1, ['update']),
                 (1, ['install', 'aboot-base']),
                 (1, ['install', 'ada-reference-manual']),
                 (1, ['install', 'fop-doc']),
-                (1, ['install', 'doc-iana']),
+                (1, ['install', 'crash-whitepaper']),
                 (1, ['update']),
                 (1, ['install', 'aboot-base']),
                 (1, ['install', 'ada-reference-manual']),
                 (1, ['install', 'fop-doc']),
-                (1, ['install', 'doc-iana']),
+                (1, ['install', 'crash-whitepaper']),
                 ]),
                 
          '5': ('Start a single bootstrap and 6 downloaders, update all to test' +
@@ -169,12 +168,12 @@ tests = {'1': ('Start a single bootstrap and downloader, test updating and downl
              {1: {}},
              [(1, ['update']), 
               (1, ['install', 'aboot-base', 'aap-doc', 'ada-reference-manual',
-                   'aspectj-doc', 'fop-doc', 'jswat-doc', 'asis-doc',
-                   'bison-doc', 'crash-whitepaper', 'doc-iana',
+                   'aspectj-doc', 'fop-doc', 'asis-doc',
+                   'bison-doc', 'crash-whitepaper',
                    'bash-doc', 'apt-howto-common', 'autotools-dev',
-                   'aptitude-doc-en', 'armagetron-common', 'asr-manpages',
-                   'atomix-data', 'alcovebook-sgml-doc', 'alamin-doc',
-                   'aegis-doc', 'afbackup-common', 'airstrike-common',
+                   'aptitude-doc-en', 'asr-manpages',
+                   'atomix-data', 'alcovebook-sgml-doc',
+                   'afbackup-common', 'airstrike-common',
                    ]),
               ]),
 
@@ -188,65 +187,65 @@ tests = {'1': ('Start a single bootstrap and downloader, test updating and downl
               6: {}},
              [(1, ['update']), 
               (1, ['install', 'aboot-base', 'aap-doc', 'ada-reference-manual',
-                   'aspectj-doc', 'fop-doc', 'jswat-doc', 'asis-doc',
-                   'bison-doc', 'crash-whitepaper', 'doc-iana',
+                   'aspectj-doc', 'fop-doc', 'asis-doc',
+                   'bison-doc', 'crash-whitepaper',
                    'bash-doc', 'apt-howto-common', 'autotools-dev',
-                   'aptitude-doc-en', 'armagetron-common', 'asr-manpages',
-                   'atomix-data', 'alcovebook-sgml-doc', 'alamin-doc',
-                   'aegis-doc', 'afbackup-common', 'airstrike-common',
+                   'aptitude-doc-en', 'asr-manpages',
+                   'atomix-data', 'alcovebook-sgml-doc',
+                   'afbackup-common', 'airstrike-common',
                    ]),
               (2, ['update']), 
               (2, ['install', 'aboot-base', 'aap-doc', 'ada-reference-manual',
-                   'aspectj-doc', 'fop-doc', 'jswat-doc', 'asis-doc',
-                   'bison-doc', 'crash-whitepaper', 'doc-iana',
+                   'aspectj-doc', 'fop-doc', 'asis-doc',
+                   'bison-doc', 'crash-whitepaper',
                    'bash-doc', 'apt-howto-common', 'autotools-dev',
-                   'aptitude-doc-en', 'armagetron-common', 'asr-manpages',
-                   'atomix-data', 'alcovebook-sgml-doc', 'alamin-doc',
-                   'aegis-doc', 'afbackup-common', 'airstrike-common',
+                   'aptitude-doc-en', 'asr-manpages',
+                   'atomix-data', 'alcovebook-sgml-doc',
+                   'afbackup-common', 'airstrike-common',
                    ]),
               (3, ['update']), 
               (3, ['install', 'aboot-base', 'aap-doc', 'ada-reference-manual',
-                   'aspectj-doc', 'fop-doc', 'jswat-doc', 'asis-doc',
-                   'bison-doc', 'crash-whitepaper', 'doc-iana',
+                   'aspectj-doc', 'fop-doc', 'asis-doc',
+                   'bison-doc', 'crash-whitepaper',
                    'bash-doc', 'apt-howto-common', 'autotools-dev',
-                   'aptitude-doc-en', 'armagetron-common', 'asr-manpages',
-                   'atomix-data', 'alcovebook-sgml-doc', 'alamin-doc',
-                   'aegis-doc', 'afbackup-common', 'airstrike-common',
+                   'aptitude-doc-en', 'asr-manpages',
+                   'atomix-data', 'alcovebook-sgml-doc',
+                   'afbackup-common', 'airstrike-common',
                    ]),
               (4, ['update']), 
               (4, ['install', 'aboot-base', 'aap-doc', 'ada-reference-manual',
-                   'aspectj-doc', 'fop-doc', 'jswat-doc', 'asis-doc',
-                   'bison-doc', 'crash-whitepaper', 'doc-iana',
+                   'aspectj-doc', 'fop-doc', 'asis-doc',
+                   'bison-doc', 'crash-whitepaper',
                    'bash-doc', 'apt-howto-common', 'autotools-dev',
-                   'aptitude-doc-en', 'armagetron-common', 'asr-manpages',
-                   'atomix-data', 'alcovebook-sgml-doc', 'alamin-doc',
-                   'aegis-doc', 'afbackup-common', 'airstrike-common',
+                   'aptitude-doc-en', 'asr-manpages',
+                   'atomix-data', 'alcovebook-sgml-doc',
+                   'afbackup-common', 'airstrike-common',
                    ]),
               (5, ['update']), 
               (5, ['install', 'aboot-base', 'aap-doc', 'ada-reference-manual',
-                   'aspectj-doc', 'fop-doc', 'jswat-doc', 'asis-doc',
-                   'bison-doc', 'crash-whitepaper', 'doc-iana',
+                   'aspectj-doc', 'fop-doc', 'asis-doc',
+                   'bison-doc', 'crash-whitepaper',
                    'bash-doc', 'apt-howto-common', 'autotools-dev',
-                   'aptitude-doc-en', 'armagetron-common', 'asr-manpages',
-                   'atomix-data', 'alcovebook-sgml-doc', 'alamin-doc',
-                   'aegis-doc', 'afbackup-common', 'airstrike-common',
+                   'aptitude-doc-en', 'asr-manpages',
+                   'atomix-data', 'alcovebook-sgml-doc',
+                   'afbackup-common', 'airstrike-common',
                    ]),
               (6, ['update']), 
               (6, ['install', 'aboot-base', 'aap-doc', 'ada-reference-manual',
-                   'aspectj-doc', 'fop-doc', 'jswat-doc', 'asis-doc',
-                   'bison-doc', 'crash-whitepaper', 'doc-iana',
+                   'aspectj-doc', 'fop-doc', 'asis-doc',
+                   'bison-doc', 'crash-whitepaper',
                    'bash-doc', 'apt-howto-common', 'autotools-dev',
-                   'aptitude-doc-en', 'armagetron-common', 'asr-manpages',
-                   'atomix-data', 'alcovebook-sgml-doc', 'alamin-doc',
-                   'aegis-doc', 'afbackup-common', 'airstrike-common',
+                   'aptitude-doc-en', 'asr-manpages',
+                   'atomix-data', 'alcovebook-sgml-doc',
+                   'afbackup-common', 'airstrike-common',
                    ]),
               ]),
 
          '9': ('Start a single bootstrap and 6 downloaders and test downloading' +
                ' a very large file.',
                {1: {}},
-               {1: {'clean': False},
-                2: {'clean': False},
+               {1: {},
+                2: {},
                 3: {},
                 4: {},
                 5: {},
@@ -344,6 +343,12 @@ PORT = %(PORT)s
 # Set this to 0 to not limit the upload bandwidth.
 UPLOAD_LIMIT = 100
 
+# The minimum number of peers before the mirror is not used.
+# If there are fewer peers than this for a file, the mirror will also be
+# used to speed up the download. Set to 0 to never use the mirror if
+# there are peers.
+MIN_DOWNLOAD_PEERS = 3
+
 # Directory to store the downloaded files in
 CACHE_DIR = %(CACHE_DIR)s
     
@@ -352,12 +357,12 @@ CACHE_DIR = %(CACHE_DIR)s
 #          for everybody to download
 # OTHER_DIRS = 
     
-# User name to try and run as
-# USERNAME = 
-
 # Whether it's OK to use an IP addres from a known local/private range
 LOCAL_OK = yes
 
+# Whether a remote peer can access the statistics page
+REMOTE_STATS = yes
+
 # Unload the packages cache after an interval of inactivity this long.
 # The packages cache uses a lot of memory, and only takes a few seconds
 # to reload when a new request arrives.
@@ -367,6 +372,9 @@ UNLOAD_PACKAGES_CACHE = 5m
 # This should be a time slightly less than the DHT's KEY_EXPIRE value.
 KEY_REFRESH = 57m
 
+# The user name to try and run as (leave blank to run as current user)
+USERNAME = 
+
 # Which DHT implementation to use.
 # It must be possile to do "from <DHT>.DHT import DHT" to get a class that
 # implements the IDHT interface.
@@ -382,12 +390,6 @@ BOOTSTRAP = %(BOOTSTRAP)s
 # whether this node is a bootstrap node
 BOOTSTRAP_NODE = %(BOOTSTRAP_NODE)s
 
-# Kademlia "K" constant, this should be an even number
-K = 8
-
-# SHA1 is 160 bits long
-HASH_LENGTH = 160
-
 # checkpoint every this many seconds
 CHECKPOINT_INTERVAL = 5m