]> granicus.if.org Git - postgresql/commitdiff
Add configure --enable-tap-tests option
authorPeter Eisentraut <peter_e@gmx.net>
Sun, 2 Nov 2014 14:14:36 +0000 (09:14 -0500)
committerPeter Eisentraut <peter_e@gmx.net>
Sun, 2 Nov 2014 14:17:26 +0000 (09:17 -0500)
Don't skip the TAP tests anymore when IPC::Run is not found.  This will
fail normally now.

configure
configure.in
doc/src/sgml/installation.sgml
doc/src/sgml/regress.sgml
src/Makefile.global.in
src/test/perl/TestLib.pm

index 1248b06066e24ca68b618b0e5fd65796503a958a..c4f70e806ea2adda21b6bea09024058b3c048f3a 100755 (executable)
--- a/configure
+++ b/configure
@@ -729,6 +729,7 @@ CPPFLAGS
 LDFLAGS
 CFLAGS
 CC
+enable_tap_tests
 enable_dtrace
 DTRACEFLAGS
 DTRACE
@@ -808,6 +809,7 @@ enable_debug
 enable_profiling
 enable_coverage
 enable_dtrace
+enable_tap_tests
 with_blocksize
 with_segsize
 with_wal_blocksize
@@ -1477,6 +1479,7 @@ Optional Features:
   --enable-profiling      build with profiling enabled
   --enable-coverage       build with coverage testing instrumentation
   --enable-dtrace         build with DTrace support
+  --enable-tap-tests      enable TAP tests (requires Perl and IPC::Run)
   --enable-depend         turn on automatic dependency tracking
   --enable-cassert        enable assertion checks (for debugging)
   --disable-thread-safety disable thread-safety in client libraries
@@ -3465,6 +3468,34 @@ fi
 
 
 
+#
+# TAP tests
+#
+
+
+# Check whether --enable-tap-tests was given.
+if test "${enable_tap_tests+set}" = set; then :
+  enableval=$enable_tap_tests;
+  case $enableval in
+    yes)
+      :
+      ;;
+    no)
+      :
+      ;;
+    *)
+      as_fn_error $? "no argument expected for --enable-tap-tests option" "$LINENO" 5
+      ;;
+  esac
+
+else
+  enable_tap_tests=no
+
+fi
+
+
+
+
 #
 # Block size
 #
@@ -14785,7 +14816,8 @@ done
 #
 # Check for test tools
 #
-for ac_prog in prove
+if test "$enable_tap_tests" = yes; then
+  for ac_prog in prove
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
   test -n "$PROVE" && break
 done
 
+  if test -z "$PROVE"; then
+    as_fn_error $? "prove not found" "$LINENO" 5
+  fi
+  if test -z "$PERL"; then
+    as_fn_error $? "Perl not found" "$LINENO" 5
+  fi
+fi
 
 # Thread testing
 
index 0a3725fbbd1a025d3fa75a9be5e724f858a9a7d0..2465f26d31ce5dbaf610251157e5f7889548dabb 100644 (file)
@@ -228,6 +228,13 @@ fi
 AC_SUBST(DTRACEFLAGS)])
 AC_SUBST(enable_dtrace)
 
+#
+# TAP tests
+#
+PGAC_ARG_BOOL(enable, tap-tests, no,
+              [enable TAP tests (requires Perl and IPC::Run)])
+AC_SUBST(enable_tap_tests)
+
 #
 # Block size
 #
@@ -1876,7 +1883,15 @@ AC_CHECK_PROGS(OSX, [osx sgml2xml sx])
 #
 # Check for test tools
 #
-AC_CHECK_PROGS(PROVE, prove)
+if test "$enable_tap_tests" = yes; then
+  AC_CHECK_PROGS(PROVE, prove)
+  if test -z "$PROVE"; then
+    AC_MSG_ERROR([prove not found])
+  fi
+  if test -z "$PERL"; then
+    AC_MSG_ERROR([Perl not found])
+  fi
+fi
 
 # Thread testing
 
index 68931d25b66cd4a48f99db8ae9cea847292ce331..adde5b39d2c3bb5adaf99ed33d030b947eaf61c3 100644 (file)
@@ -1271,6 +1271,16 @@ su - postgres
        </listitem>
       </varlistentry>
 
+      <varlistentry>
+       <term><option>--enable-tap-tests</option></term>
+       <listitem>
+        <para>
+         Enable tests using the Perl TAP tools.  This requires a Perl
+         installation and the Perl module <literal>IPC::Run</literal>.
+         See <xref linkend="regress-tap"> for more information.
+        </para>
+       </listitem>
+      </varlistentry>
      </variablelist>
     </para>
 
index 13802e8f4194a568d662ff24875965d411031884..71196a1aca310161f15a50dfef236d53f679d37c 100644 (file)
@@ -676,7 +676,7 @@ make -C src/bin check PROVE_FLAGS='--reverse'
 
    <para>
     The tests written in Perl require the Perl
-    module <literal>IPC::Run</literal>, otherwise most tests will be skipped.
+    module <literal>IPC::Run</literal>.
     This module is available from CPAN or an operating system package.
    </para>
   </sect1>
index b04d0055a355c51fd82845d2236a2df4801412cb..63ff50b1dca7b2f720a5f26d65d083cf0ef1098b 100644 (file)
@@ -174,6 +174,7 @@ enable_nls  = @enable_nls@
 enable_debug   = @enable_debug@
 enable_dtrace  = @enable_dtrace@
 enable_coverage        = @enable_coverage@
+enable_tap_tests       = @enable_tap_tests@
 enable_thread_safety   = @enable_thread_safety@
 
 python_enable_shared   = @python_enable_shared@
@@ -310,6 +311,8 @@ define ld_library_path_var
 $(if $(filter $(PORTNAME),darwin),DYLD_LIBRARY_PATH,$(if $(filter $(PORTNAME),aix),LIBPATH,LD_LIBRARY_PATH))
 endef
 
+ifeq ($(enable_tap_tests),yes)
+
 define prove_installcheck
 cd $(srcdir) && TESTDIR='$(CURDIR)' PATH="$(bindir):$$PATH" PGPORT='6$(DEF_PGPORT)' $(PROVE) $(PG_PROVE_FLAGS) $(PROVE_FLAGS) t/*.pl
 endef
@@ -320,6 +323,11 @@ $(MAKE) -C $(top_builddir) DESTDIR='$(CURDIR)'/tmp_check/install install >'$(CUR
 cd $(srcdir) && TESTDIR='$(CURDIR)' PATH="$(CURDIR)/tmp_check/install$(bindir):$$PATH" $(call add_to_path,$(ld_library_path_var),$(CURDIR)/tmp_check/install$(libdir)) PGPORT='6$(DEF_PGPORT)' $(PROVE) $(PG_PROVE_FLAGS) $(PROVE_FLAGS) t/*.pl
 endef
 
+else
+prove_installcheck = @echo "TAP tests not enabled"
+prove_check = $(prove_installcheck)
+endif
+
 # Installation.
 
 install_bin = @install_bin@
index cdb5e31c362516ea553622cc212501040a7840e8..46a8bece1e50c9f1f561f87b54a139853aa506db 100644 (file)
@@ -25,19 +25,9 @@ our @EXPORT = qw(
 use Cwd;
 use File::Spec;
 use File::Temp ();
+use IPC::Run qw(run start);
 use Test::More;
 
-BEGIN
-{
-       eval {
-               require IPC::Run;
-               import IPC::Run qw(run start);
-               1;
-       } or do
-       {
-               plan skip_all => "IPC::Run not available";
-       };
-}
 
 # Set to untranslated messages, to be able to compare program output
 # with expected strings.