X-Git-Url: https://git.mxchange.org/?p=quix0rs-apt-p2p.git;a=blobdiff_plain;f=test.py;h=3ccaa14b3947a22d915757c09a7202966f861a16;hp=3fb7057ccf7e17700bd871962ddf3944103bedd3;hb=c429a67c05afa54e5fe44607e5fe7c09fd35e81a;hpb=6d23f1559df1435172f1da25ae0f57ae11a24bde diff --git a/test.py b/test.py index 3fb7057..3ccaa14 100755 --- a/test.py +++ b/test.py @@ -14,12 +14,12 @@ the apt-p2p program. and the apt-get commands to run (C{list}). 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-p2p configuration file (see L{apt_p2p_conf_template} below). + The values are the dictionary of keyword options to pass to the function + that starts the bootstrap node (see L{start_bootstrap} 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-p2p - configuration file (see L{apt_p2p_conf_template} below). + the dictionary of keyword options to pass to the function + that starts the downloader node (see L{start_downloader} 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 @@ -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.', @@ -89,32 +88,32 @@ 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']), (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,60 +187,83 @@ 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: {}, + 2: {}, + 3: {}, + 4: {}, + 5: {}, + 6: {}}, + [(1, ['update']), + (1, ['install', 'kde-icons-oxygen']), + (2, ['update']), + (2, ['install', 'kde-icons-oxygen']), + (3, ['update']), + (3, ['install', 'kde-icons-oxygen']), + (4, ['update']), + (4, ['install', 'kde-icons-oxygen']), + (5, ['update']), + (5, ['install', 'kde-icons-oxygen']), + (6, ['update']), + (6, ['install', 'kde-icons-oxygen']), + ]), + } assert 'all' not in tests @@ -305,7 +327,6 @@ Debug NoLocking "false"; Acquire::Ftp "false"; // Show ftp command traffic Acquire::Http "false"; // Show http command traffic - Acquire::Debtorrent "false"; // Show http command traffic Acquire::gpgv "false"; // Show the gpgv traffic aptcdrom "false"; // Show found package files IdentCdrom "false"; @@ -322,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 @@ -623,7 +650,7 @@ def start_downloader(bootstrap_addresses, num_down, options = {}, # Create apt's config files f = open(join([downloader_dir, 'etc', 'apt', 'sources.list']), 'w') - f.write('deb http://localhost:1%02d77/%s/ stable %s\n' % (num_down, mirror, suites)) + f.write('deb http://localhost:1%02d77/%s/ unstable %s\n' % (num_down, mirror, suites)) f.close() f = open(join([downloader_dir, 'etc', 'apt', 'apt.conf']), 'w') @@ -731,12 +758,12 @@ def run_test(bootstraps, downloaders, apt_get_queue): bootstrap_addresses += '\n ' + bootstrap_address(boot_keys[i]) for k, v in bootstraps.items(): - running_bootstraps[k] = start_bootstrap(bootstrap_addresses, k, v) + running_bootstraps[k] = start_bootstrap(bootstrap_addresses, k, **v) sleep(5) for k, v in downloaders.items(): - running_downloaders[k] = start_downloader(bootstrap_addresses, k, v) + running_downloaders[k] = start_downloader(bootstrap_addresses, k, **v) sleep(5)