Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:99172 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 4689 invoked from network); 25 May 2017 12:34:49 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 25 May 2017 12:34:49 -0000 Authentication-Results: pb1.pair.com smtp.mail=rasmus@lerdorf.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=rasmus@lerdorf.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain lerdorf.com designates 209.85.218.46 as permitted sender) X-PHP-List-Original-Sender: rasmus@lerdorf.com X-Host-Fingerprint: 209.85.218.46 mail-oi0-f46.google.com Received: from [209.85.218.46] ([209.85.218.46:36240] helo=mail-oi0-f46.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 5E/66-10292-66FC6295 for ; Thu, 25 May 2017 08:34:48 -0400 Received: by mail-oi0-f46.google.com with SMTP id h4so277798974oib.3 for ; Thu, 25 May 2017 05:34:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lerdorf-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=QlAVIbh4bfmvrp0Mf1YkX2c3qGE55fWclrL3Q8ksA/w=; b=Z9r6AFVfNmnvxLFw9H3+aqradY8W59JKXaNYlhUNUgPZ9TNkAXqBYiN8SXv68jHQm5 Lpvy2WKHXsOzdy2bV3IfXMax57VN01nZC9Ue+7bPJqC4/g0x5t5fBXVXKGa1K79yoMiI yEjRsq2A5NI3xZBPaP6HGIEYgeeTDCF55h5yRBp4DNQQLbS+bg68DESPjOO6GLDSsd79 nUrPU2h7D1aP7w3uu0dThAV5OVKz372isVYQp4rZrqdtbQ6NixcN1xiaNNwPu7TkR3TV +36kLy9dDkDASDWV0fiSu0Uk0hg89VrimzIcmnLwA3Zxfp7Dk0IVS9N+AAoVYa5ptvvj L6Kw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=QlAVIbh4bfmvrp0Mf1YkX2c3qGE55fWclrL3Q8ksA/w=; b=dHImsnilVaxA59usQrviFyJw3VOvjsBsaok3UwsdGREi/HEU3rGbB3otUajGYvuwds ZQIMKxZsxuw+ftjNNG8BoL0xsilQVbA4sRgEYxND74cK0yvh2AikYLfTieYZu6AYz246 YQTwBaGY0ES3z9L8HyZcmWXa5okLJTpDaRBPbTrp9mWSu1CLhpe1mjJfVop7wzPS868g wIq0fCYbORy3ZygVmpLyOu7Wsu6070ydK+Nf4mWdxjEKgnEHA9I/Q4uE6+BMh4lEMGbU UwvSPVwJzplVjFrqAons/RsB4st5yccnkn14IIgOnAeDIWxa/zbE/RfVZntUIkQ/Kc2j 8sQQ== X-Gm-Message-State: AODbwcDRt64d8aXPvBN24IBqPtIAFGz7ipxMbDbbnv5Om6H1bw2LKz0q QNIoNtv4vuluVinFWJwsuxv3Us+0TuBHNuKmXg== X-Received: by 10.157.11.166 with SMTP id 35mr8287557oth.51.1495715683523; Thu, 25 May 2017 05:34:43 -0700 (PDT) MIME-Version: 1.0 Received: by 10.74.61.139 with HTTP; Thu, 25 May 2017 05:34:03 -0700 (PDT) In-Reply-To: <6F.B1.10292.2B026295@pb1.pair.com> References: <1495067758.9756.47.camel@schlueters.de> <1495103485.9756.58.camel@schlueters.de> <6F.B1.10292.2B026295@pb1.pair.com> Date: Thu, 25 May 2017 15:34:03 +0300 Message-ID: To: Andrea Faulds Cc: PHP internals Content-Type: multipart/alternative; boundary="001a113ecc8800780405505872bd" Subject: Re: [PHP-DEV] Implement formal process for run-tests.php refactor From: rasmus@lerdorf.com (Rasmus Lerdorf) --001a113ecc8800780405505872bd Content-Type: text/plain; charset="UTF-8" On Thu, May 25, 2017 at 3:09 AM, Andrea Faulds wrote: > > It occurred to me a little while ago that if we ran the test suite in > parallel, but only run one test from a given directory (or extension) at a > time, it should probably avoid any such problems, and it would not be > particularly difficult to implement. > > Is that worth a shot, do you think? Yes, definitely. Some of the tests also have side-effects and don't work if not run in the original order. They shouldn't have such side-effects, of course, but auditing nearly 15k tests for this is not a fun task. Within each directory there should only be one execution thread and the tests should be run in their original order. That still leaves plenty of room for concurrency, of course. We have 152 separate directories containing .phpt files. And if we are smart about it, we sort the directories based on the number of tests in each and start off with the larger ones to make sure we don't end with a single process still working on a huge directory. The 152 directories sorted by the number of tests are: [./Zend/tests] => 1613 [./ext/standard/tests/strings] => 924 [./ext/standard/tests/array] => 923 [./ext/standard/tests/file] => 800 [./ext/spl/tests] => 697 [./ext/date/tests] => 632 [./ext/intl/tests] => 474 [./ext/mysqli/tests] => 396 [./ext/oci8/tests] => 360 [./ext/reflection/tests] => 334 [./ext/gd/tests] => 329 [./ext/mbstring/tests] => 317 [./ext/phar/tests] => 300 [./tests/classes] => 277 [./ext/standard/tests/general_functions] => 272 [./ext/session/tests] => 228 [./ext/standard/tests/math] => 219 [./ext/dom/tests] => 219 [./tests/lang] => 216 [./ext/zlib/tests] => 170 [./ext/pcre/tests] => 118 [./ext/pdo_mysql/tests] => 116 [./ext/simplexml/tests] => 112 [./ext/openssl/tests] => 112 [./ext/ldap/tests] => 107 [./Zend/tests/traits] => 107 [./ext/curl/tests] => 107 [./ext/phar/tests/tar] => 102 [./ext/posix/tests] => 100 [./ext/standard/tests/serialize] => 99 [./ext/standard/tests/streams] => 96 [./ext/filter/tests] => 94 [./ext/phar/tests/zip] => 91 [./Zend/tests/generators] => 86 [./ext/soap/tests/schema] => 85 [./ext/soap/tests/bugs] => 85 [./ext/xml/tests] => 85 [./ext/sockets/tests] => 85 [./ext/sqlite3/tests] => 82 [./tests/basic] => 80 [./ext/iconv/tests] => 77 [./ext/imap/tests] => 77 [./ext/soap/tests/soap12] => 73 [./sapi/cli/tests] => 73 [./ext/soap/tests/interop/Round2/Base] => 72 [./ext/ctype/tests] => 70 [./ext/pgsql/tests] => 70 [./ext/pdo/tests] => 69 [./ext/standard/tests/class_object] => 68 [./tests/output] => 66 [./ext/soap/tests] => 65 [./ext/mcrypt/tests] => 64 [./ext/dba/tests] => 64 [./ext/gmp/tests] => 63 [./tests/lang/operators] => 62 [./ext/json/tests] => 62 [./ext/standard/tests/dir] => 61 [./ext/xsl/tests] => 61 [./ext/zip/tests] => 60 [./ext/phar/tests/cache_list] => 60 [./ext/soap/tests/interop/Round4/GroupH] => 58 [./ext/standard/tests/network] => 58 [./Zend/tests/type_declarations] => 56 [./ext/opcache/tests] => 56 [./Zend/tests/return_types] => 54 [./ext/hash/tests] => 49 [./ext/exif/tests] => 49 [./tests/security] => 48 [./ext/standard/tests/url] => 45 [./Zend/tests/try] => 43 [./ext/tidy/tests] => 39 [./ext/xmlwriter/tests] => 38 [./ext/fileinfo/tests] => 36 [./sapi/phpdbg/tests] => 36 [./ext/soap/tests/interop/Round4/GroupI] => 35 [./ext/wddx/tests] => 34 [./ext/pdo_pgsql/tests] => 34 [./ext/snmp/tests] => 33 [./ext/bcmath/tests] => 33 [./ext/xmlrpc/tests] => 32 [./ext/ftp/tests] => 32 [./ext/tokenizer/tests] => 32 [./ext/calendar/tests] => 32 [./ext/standard/tests/image] => 31 [./ext/pdo_sqlite/tests] => 28 [./ext/standard/tests/mail] => 27 [./ext/pdo_oci/tests] => 27 [./ext/enchant/tests] => 25 [./ext/gettext/tests] => 23 [./Zend/tests/grammar] => 23 [./ext/xmlreader/tests] => 22 [./Zend/tests/assert] => 22 [./sapi/fpm/tests] => 22 [./ext/interbase/tests] => 22 [./ext/soap/tests/interop/Round3/GroupD] => 21 [./ext/standard/tests/assert] => 20 [./ext/standard/tests/misc] => 20 [./ext/standard/tests/filters] => 18 [./ext/libxml/tests] => 18 [./ext/pcntl/tests] => 18 [./ext/readline/tests] => 16 [./Zend/tests/variadic] => 16 [./Zend/tests/use_function] => 16 [./ext/soap/tests/interop/Round2/GroupB] => 15 [./Zend/tests/varSyntax] => 15 [./ext/pdo_dblib/tests] => 14 [./ext/standard/tests/http] => 14 [./Zend/tests/traits/bugs] => 14 [./sapi/cgi/tests] => 14 [./tests/func] => 14 [./tests/run-test] => 14 [./ext/pdo_firebird/tests] => 14 [./ext/odbc/tests] => 14 [./ext/com_dotnet/tests] => 14 [./Zend/tests/arg_unpack] => 13 [./Zend/tests/anon] => 12 [./ext/bz2/tests] => 12 [./tests/strings] => 11 [./Zend/tests/use_const] => 11 [./ext/standard/tests/password] => 10 [./ext/sysvshm/tests] => 9 [./tests/lang/string] => 9 [./Zend/tests/generators/errors] => 9 [./Zend/tests/generators/finally] => 8 [./sapi/tests] => 8 [./ext/standard/tests/time] => 7 [./ext/standard/tests] => 7 [./Zend/tests/multibyte] => 7 [./ext/sysvmsg/tests] => 6 [./ext/soap/tests/interop/Round3/GroupE] => 6 [./ext/soap/tests/interop/Round3/GroupF] => 6 [./ext/pspell/tests] => 5 [./ext/intl/uchar/tests] => 4 [./ext/standard/tests/versioning] => 4 [./Zend/tests/constants] => 4 [./ext/standard/tests/file/windows_acls] => 4 [./ext/standard/tests/random] => 4 [./ext/standard/tests/file/windows_links] => 4 [./ext/standard/tests/directory] => 4 [./ext/standard/tests/crypt] => 3 [./ext/pdo_odbc/tests] => 3 [./Zend/tests/bug67436] => 2 [./ext/recode/tests] => 2 [./Zend/tests/typehints] => 2 [./tests/lang/constants] => 2 [./ext/shmop/tests] => 2 [./ext/sysvsem/tests] => 2 [./ext/spl/examples/tests] => 1 [./ext/phar/tests/bug64931] => 1 [./ext/gmp] => 1 [./ext/skeleton/tests] => 1 [./Zend/tests/ast] => 1 --001a113ecc8800780405505872bd--