From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21310 invoked by alias); 18 Feb 2013 17:57:32 -0000 Received: (qmail 21298 invoked by uid 22791); 18 Feb 2013 17:57:30 -0000 X-SWARE-Spam-Status: No, hits=-6.4 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,KHOP_SPAMHAUS_DROP,RCVD_IN_DNSWL_HI,RCVD_IN_HOSTKARMA_W,RP_MATCHES_RCVD,SPF_HELO_PASS X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 18 Feb 2013 17:57:22 +0000 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r1IHvMHc013509 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 18 Feb 2013 12:57:22 -0500 Received: from barimba (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id r1IHvJ4B029659 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Mon, 18 Feb 2013 12:57:21 -0500 From: Tom Tromey To: GDB Development Subject: RFC - changes to the test suite Date: Mon, 18 Feb 2013 17:57:00 -0000 Message-ID: <87fw0ta4jk.fsf@fleche.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2.92 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2013-02/txt/msg00064.txt.bz2 I've been working for a while on file-level parallelism for the test suite. The idea is to make each .exp file independent, so that we can run the test cases in parallel at whatever granularity we like. This will let the test suite scale better on more powerful machines. Most of the needed changes to the tests themselves are straightforward: adding standard_testfile and standard_output_file in various places, so that tests no longer stomp on each others' executables, and so that the location of output files can be controlled. However, this latter point gets to something I thought I would bring up for discussion before prepping this (somewhat large[*]) series for submission. In the interest of nicer test isolation, I changed where the test suite places most files. For a given test file, say gdb.DIR/FILE.exp, the various output files (executables, .o files, libraries, etc) go in a new directory named "./outputs/gdb.DIR/FILE". This has two nice effects. First, we don't have to audit every single intermediate file to look for basename clashes -- we can just make sure to use standard_output_file. Second, it means all the "clean" rules can be replaced with "rm -rf outputs". This resulted in a nice cleanup -- I got rid of all the (IMO barely maintained) Makefile.in files underneath gdb/testsuite. This in turn speeds up configure a little. So, the first question is -- does anybody care strongly about where the files end up? And, if you do care, why do you care? I can pretty easily make it so that the files end up in the usual place when not running in "parallel" mode. I don't think this is as good, but I could do it if there is an outcry. There are a few other changes, too, but nothing quite as visible. I changed various gdb-property-testing procs to optionally cache their results in a "cache" directory. That way we aren't re-running things like the compile check in support_complex_tests for every .exp file that might need it. I also added an "inotify" mode to the tests so you can easily see which tests write files outside of their specified directory. There are still a few remaining, I ran out of steam dotting every "i". Comments? I plan to start organizing this branch for submission soon. Tom [*] 329 files changed, 2099 insertions(+), 4847 deletions(-)