Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:75351 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 71917 invoked from network); 10 Jul 2014 09:08:58 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 10 Jul 2014 09:08:58 -0000 Authentication-Results: pb1.pair.com header.from=mike.php.net@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=mike.php.net@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 74.125.82.47 as permitted sender) X-PHP-List-Original-Sender: mike.php.net@gmail.com X-Host-Fingerprint: 74.125.82.47 mail-wg0-f47.google.com Received: from [74.125.82.47] ([74.125.82.47:34694] helo=mail-wg0-f47.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id B2/B0-65406-9285EB35 for ; Thu, 10 Jul 2014 05:08:57 -0400 Received: by mail-wg0-f47.google.com with SMTP id y10so3305905wgg.30 for ; Thu, 10 Jul 2014 02:08:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=SME9faB8pczJsILm8TKaxmWnVGnihDRdyLrdalucjJ0=; b=HolU0CMQUYQP8X7WETCrmh3+5eqEZJHDq3j43mWcv6exwIMyyaFLWgaNEpRLEIyU8F w/+6Gi44iZrZ8KkMUvQjnZTE17zLX81rftQcdLBZhvLcfrxcTypwjbIezoZImeHi2JnZ cx0NsVZYUHI6duS8W1qfQARSdJgixDapbvi2Hm/9/B+oD4Q+rjonaqB6V47FrWW6HJvE BbFpszTXFJtljoIFqwa63oFeN99/6K8z56LMfj+B12wKoSQc0liY7UAn6wxOXxPoGz69 j/Rb+RSKyqQazSruUT3unFGllxPRs5ZZcqShc1AWJhnizRIZeKr2HpBAzsQtJO+70LYe MmLQ== X-Received: by 10.194.48.103 with SMTP id k7mr53672624wjn.68.1404983334155; Thu, 10 Jul 2014 02:08:54 -0700 (PDT) Received: from [192.168.1.120] (178-18-170-101.customer.bnet.at. [178.18.170.101]) by mx.google.com with ESMTPSA id o3sm29392630wiz.24.2014.07.10.02.08.52 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 10 Jul 2014 02:08:53 -0700 (PDT) Sender: Michael Wallner Message-ID: <53BE5824.2020209@php.net> Date: Thu, 10 Jul 2014 11:08:52 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Stas Malyshev CC: Sara Golemon , Nuno Lopes , "internals@lists.php.net" References: <05091D9021CD48208FCE220DE1CCC3CE@pc07654> <53BD9F71.1090401@sugarcrm.com> In-Reply-To: <53BD9F71.1090401@sugarcrm.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] Concurrency support for run-tests From: mike@php.net (Michael Wallner) On Wed 09 Jul 2014 22:00:49 CEST, Stas Malyshev wrote: > Hi! > >> Having thought a bit about the subject, the heuristic I came up with was to >> 1) do not run tests from the same extension in parallel, and 2) do not run >> tests from certain extensions in parallel (e.g., mysql and pdo_mysql). Heuristics are not reliable enough. > How about making it a whitelist? For tests/extensions we know it's easy > to paralellize (like ones not having external dependencies/servers/etc) > simple script could whitelist a lot of them. For those more tricky, we > could whitelist them gradually. > Whitelists are very limitating by nature, nobody will go and add tests to this whitelist, I think. I don't think a script is a viable way to whitelist tests (think about all those tests with with includes or config files, etc). Tests that fail due to concurrency will be easier noticed and added to a concurrency group or even better be fixed. I added a CONCURRENCY_GROUP section, see https://github.com/m6w6/php-src/compare/parallel-run-tests?expand=1 If the next test to execute is in the same CONCURRENCY_GROUP as one which is already/still running, it will be pushed back. So tests with f.e. listening servers could use "port:9999" as CONCURRENCY_GROUP or mysql tests could use "mysql:dbname", etc. As example, I added the open_basedir tests to one group because they all tamper around with the same subdirectories. I also added a shuffle($test_files) if $concurrency is greater than 2 because that helps running the test suite concurrently actually. Anybody got an idea why the tests are sorted at all? -- Regards, Mike