Re: configure's checks for --enable-tap-tests are insufficient - Mailing list pgsql-hackers

From Tom Lane
Subject Re: configure's checks for --enable-tap-tests are insufficient
Date
Msg-id 19714.1521569090@sss.pgh.pa.us
Whole thread Raw
In response to Re: configure's checks for --enable-tap-tests are insufficient  (ilmari@ilmari.org (Dagfinn Ilmari Mannsåker))
Responses Re: configure's checks for --enable-tap-tests are insufficient
List pgsql-hackers
ilmari@ilmari.org (Dagfinn Ilmari =?utf-8?Q?Manns=C3=A5ker?=) writes:
> Tom Lane <tgl@sss.pgh.pa.us> writes:
>> I just want to test for modules that we know are likely to be omitted
>> on popular platforms.  I've proposed testing two that would improve
>> the user experience on Red Hat; what's the equivalent minimum set for
>> Debian?

> On Debian (I've checked the previous and current stable releases, as
> well as unstable) the only package required by the TAP tests not in
> perl-base is Time::HiRes.  Of the modules required by PL/Perl, Opcode is
> not in perl-base either.

Ah, thanks.  Not sure we need to make an explicit test for Opcode; we've
not heard of anyone not having that.

> BTW, should include the version in the Test::More check, since we only
> requie Perl 5.8, but that only shipped Test::More 0.47, while we require
> 0.97.

Good point, though it looks to me like we're requiring 0.87 not 0.97?

Anyway, I propose the attached.  It produces output like

checking for perl module IPC::Run... ok
checking for perl module Test::More 0.87... no
checking for perl module Time::HiRes... ok
configure: error: Additional Perl modules are required to run TAP tests

which seems a better approach to me than making the user find out one
at a time which modules are needed.

            regards, tom lane

diff --git a/configure b/configure
index 3943711..1be8a1a 100755
*** a/configure
--- b/configure
*************** if test "$enable_tap_tests" = yes; then
*** 16517,16522 ****
--- 16517,16528 ----
    # (prove might be part of a different Perl installation than perl, eg on
    # MSys, so the result of AX_PROG_PERL_MODULES could be irrelevant anyway.)
    if test -z "$PROVE"; then
+     # Test::More and Time::HiRes are supposed to be part of core Perl,
+     # but some distros omit them in a minimal installation.
+
+
+
+



*************** fi
*** 16566,16572 ****

  if test "x$PERL" != x; then
    ax_perl_modules_failed=0
!   for ax_perl_module in 'IPC::Run' ; do
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl module $ax_perl_module" >&5
  $as_echo_n "checking for perl module $ax_perl_module... " >&6; }

--- 16572,16578 ----

  if test "x$PERL" != x; then
    ax_perl_modules_failed=0
!   for ax_perl_module in 'IPC::Run' 'Test::More 0.87' 'Time::HiRes' ; do
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl module $ax_perl_module" >&5
  $as_echo_n "checking for perl module $ax_perl_module... " >&6; }

*************** $as_echo "ok" >&6; };
*** 16588,16594 ****

    else
      :
!     as_fn_error $? "Perl module IPC::Run is required to run TAP tests" "$LINENO" 5
    fi
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: could not find perl" >&5
--- 16594,16600 ----

    else
      :
!     as_fn_error $? "Additional Perl modules are required to run TAP tests" "$LINENO" 5
    fi
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: could not find perl" >&5
diff --git a/configure.in b/configure.in
index 1babdbb..9a6f4b1 100644
*** a/configure.in
--- b/configure.in
*************** if test "$enable_tap_tests" = yes; then
*** 2114,2121 ****
    # (prove might be part of a different Perl installation than perl, eg on
    # MSys, so the result of AX_PROG_PERL_MODULES could be irrelevant anyway.)
    if test -z "$PROVE"; then
!     AX_PROG_PERL_MODULES(IPC::Run, ,
!       AC_MSG_ERROR([Perl module IPC::Run is required to run TAP tests]))
    fi
    # Now make sure we know where prove is
    PGAC_PATH_PROGS(PROVE, prove)
--- 2114,2123 ----
    # (prove might be part of a different Perl installation than perl, eg on
    # MSys, so the result of AX_PROG_PERL_MODULES could be irrelevant anyway.)
    if test -z "$PROVE"; then
!     # Test::More and Time::HiRes are supposed to be part of core Perl,
!     # but some distros omit them in a minimal installation.
!     AX_PROG_PERL_MODULES([IPC::Run Test::More=0.87 Time::HiRes], ,
!       [AC_MSG_ERROR([Additional Perl modules are required to run TAP tests])])
    fi
    # Now make sure we know where prove is
    PGAC_PATH_PROGS(PROVE, prove)

pgsql-hackers by date:

Previous
From: Justin Pryzby
Date:
Subject: Re: [HACKERS] per-sesson errors after interrupting CLUSTERpg_attribute (not attrdef)
Next
From: Alvaro Herrera
Date:
Subject: Re: pgsql: Fix CommandCounterIncrement in partition-related DDL