Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nLZMU-0002PQ-WF for pgsql-hackers@arkaria.postgresql.org; Sat, 19 Feb 2022 23:41:59 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nLZMS-0005e6-VH for pgsql-hackers@arkaria.postgresql.org; Sat, 19 Feb 2022 23:41:56 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nLZMS-0005dx-IZ for pgsql-hackers@lists.postgresql.org; Sat, 19 Feb 2022 23:41:56 +0000 Received: from mail-il1-x12a.google.com ([2607:f8b0:4864:20::12a]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1nLZMO-00064f-B4 for pgsql-hackers@postgresql.org; Sat, 19 Feb 2022 23:41:55 +0000 Received: by mail-il1-x12a.google.com with SMTP id z7so7347719ilb.6 for ; Sat, 19 Feb 2022 15:41:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telsasoft-com.20210112.gappssmtp.com; s=20210112; h=date:from:to:cc:subject:message-id:mime-version:content-disposition :user-agent; bh=VzuiO5mNNg09uJSbGuabvI2Ncj+AIPpvCOczge2h61I=; b=yPHpZjpHHHBZwwZUk7WRDAsHF0RBFKWNJe2TwuTK+yUyYnEW2Cw6vXn/U0z/6980bp 4E1ZLQZRBZ1IO3P1/AjNg6hAwh3TE4ViFkcwjfwbeI33snASGXDgJXqt0SC3UUKcBqbG cJ9TBUdvHfSPzapoC/9cEX/miThdvEdUAngSBlEdM8O6VLNvKT5PcFkHDGmgLGMFGtEX 5/KOhjJcseoQc8GC6ZnbrnKulul5FrN7hgD38EPVVGXSiadhrUmyVaxF4bTNGv/N8Wze a05OGQbvG9jRZWmADMINLntmRqFNm6n/lvDzI4nTP7Tk6mhwYSMOEcm3xVzHNMKt2FrD TGcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:mime-version :content-disposition:user-agent; bh=VzuiO5mNNg09uJSbGuabvI2Ncj+AIPpvCOczge2h61I=; b=kKI0Dh9VTDjLetvvHlCFv8MwTSj+9EFa7r84RTAx05YoCOyDDbnQXJGWxVMyZUOrdX faeiv3fG9ISyNC7yWJxlbNv9cVve87zGRyk71zKiMC7tF/6qDjrKs11VQ72OBJvO2vmI sUuBbdiYZrnMZzUsdZG6GASTTNBnMYVI5ih22m64CO+tasR35ZkYLIGmV/dKpYXk+ibM VC3QQLaA0IMxsVDLNdzH2yRVwlkYOQgPnbDj+hn/SCnlYDrBqctBrvBbRNg2z1K2SSpC wiHSy+8XcPP6LDIXpj558TdC53o9ySFXgFCCj0QDQ4tpNTZaMBBg6MR6/7y9ulCvSssG QNrQ== X-Gm-Message-State: AOAM531s0jRl/M9mQEjZrGFAfZL16S6V459CEYSHuBkRGkFKwusrmWtI qpoA67Jj0OsNq7l3XX6VWBvv2g== X-Google-Smtp-Source: ABdhPJz7y7pG829NpQ/3OfCpxIjp3oQwH1Lf9B8eJP9FmtwXamFdXCrrREpRrlIXjPzzBz2l/QP3WQ== X-Received: by 2002:a05:6e02:1a88:b0:2be:67f5:33d2 with SMTP id k8-20020a056e021a8800b002be67f533d2mr10175622ilv.54.1645314110216; Sat, 19 Feb 2022 15:41:50 -0800 (PST) Received: from pryzbyj.telsasoft (charmander.telsasoft.com. [50.244.222.1]) by smtp.gmail.com with ESMTPSA id s2sm3346537ioo.8.2022.02.19.15.41.49 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 19 Feb 2022 15:41:49 -0800 (PST) Received: by pryzbyj.telsasoft (Postfix, from userid 1000) id 33D4F800224; Sat, 19 Feb 2022 17:41:49 -0600 (CST) Date: Sat, 19 Feb 2022 17:41:49 -0600 From: Justin Pryzby To: Andres Freund Cc: Tom Lane , Robert Haas , Andrew Dunstan , pgsql-hackers@postgresql.org, Thomas Munro , Melanie Plageman , Peter Eisentraut , Daniel Gustafsson Subject: set TESTDIR from perl rather than Makefile Message-ID: <20220219234148.GC9008@telsasoft.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.9.4 (2018-02-28) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Forking: On Tue, Feb 15, 2022 at 10:42:09PM -0800, Andres Freund wrote: > >> I was thinking that we should make Utils.pm's INIT block responsible for > >> figuring out both the directory a test should run in and the log location, > >> instead having that in vcregress.pl and Makefile.global.in. Mostly because > >> doing it in the latter means we can't start tests with different TESTDIR and > >> working dir at the same time. > >> > >> If instead we pass the location of the top-level build and top-level source > >> directory from vcregress.pl / Makefile.global, the tap test infrastructure can > >> figure out that stuff themselves, on a per-test basis. > >> > >> For msvc builds we probably would need to pass in some information that allow > >> Utils.pm to set up PATH appropriately. I think that might just require knowing > >> that a) msvc build system is used b) Release vs Debug. > > > >I'm totally unsure if this resembles what you're thinking of, and I'm surprised > >I got it working so easily. But it gets the tap test output in separate dirs, > >and CI is passing for everyone (windows failed because I injected a "false" to > >force it to upload artifacts). > > > >https://github.com/justinpryzby/postgres/runs/5211673291 > > Yes, that's along the lines I was thinking. I only checked it on my phone, so it certainly isn't a careful look... > > I think this should be discussed in a separate thread, for visibility. I rebased and fixed the check-guc script to work, made it work with vpath builds, and cleaned it up some. There may be other reasons to do this, but the reason I did it is to implement an alltaptests target for vcregress, for cirrus (and everyone else). If all the tap tests are run serially, it takes ~16min on cirrus; it takes ~13 to run in parallel (the below run is slower than that since all the slow tests were scheduled at once - which isn't always a good idea). Running the tests in parallel uses a single invocation of prove, and starts all the TAP tests from the same dir rather than their own dir. But without this patch, all the tap test are output to the same dir, which is a pain to look through. This (and other) patches ran here. https://github.com/justinpryzby/postgres/runs/5261323874 ... e806bcb280 wip: set TESTDIR from src/test/perl rather than Makefile/vcregress a1bfa8e1a6 cirrus/windows: increase timout to 20min 5479b44198 vcregress: add alltaptests fcef696c7d vcregress: run alltaptests in parallel 2d7dba13dd cirrus/windows: prove --state to run tests in order 7edf835d43 tmp: run tap tests first 6fb010c137 cirrus: include hints how to install OS packages.. 28a25f12c3 cirrus/windows: add compiler_warnings_script 75bc8cff69 cirrus: upload changed html docs as artifacts 8008af2480 s!build docs as a separate task.. a3bf699a0e vcregress/ci: test modules/contrib with NO_INSTALLCHECK=1 d28ce46c2f wip: cirrus: code coverage -- Justin