From 3bae748256260290a49d6a9a12fe53089854f600 Mon Sep 17 00:00:00 2001
From: Dan Fandrich <dan@coneharvesters.com>
Date: Thu, 18 Jan 2007 18:04:20 +0000
Subject: [PATCH] Added precheck that curl supports the 'openssl' engine in
 test 307.

---
 tests/data/test307        |  2 +-
 tests/libtest/Makefile.am |  2 ++
 tests/libtest/test307.pl  | 19 +++++++++++++++++++
 tests/runtests.pl         |  2 ++
 4 files changed, 24 insertions(+), 1 deletion(-)
 create mode 100755 tests/libtest/test307.pl

diff --git a/tests/data/test307 b/tests/data/test307
index 0be9dda1b6..5d626d75d5 100644
--- a/tests/data/test307
+++ b/tests/data/test307
@@ -21,7 +21,7 @@ OpenSSL
 https
 </server>
 <precheck>
-echo Cannot determine list of SSL engines
+perl %SRCDIR/libtest/test307.pl %CURL
 </precheck>
 
  <name>
diff --git a/tests/libtest/Makefile.am b/tests/libtest/Makefile.am
index aadd9c7ed1..6fd685854c 100644
--- a/tests/libtest/Makefile.am
+++ b/tests/libtest/Makefile.am
@@ -35,6 +35,8 @@ INCLUDES = -I$(top_srcdir)/include/curl \
 
 LIBDIR = $(top_builddir)/lib
 
+EXTRA_DIST = test307.pl
+
 # these files are used in every single test program below
 SUPPORTFILES = first.c test.h
 
diff --git a/tests/libtest/test307.pl b/tests/libtest/test307.pl
new file mode 100755
index 0000000000..7e2687b542
--- /dev/null
+++ b/tests/libtest/test307.pl
@@ -0,0 +1,19 @@
+#!/usr/bin/env perl
+# Determine if the given curl executable supports the 'openssl' SSL engine
+if ( $#ARGV != 0 ) 
+{
+	print "Usage: $0 curl-executable\n";
+	exit 3;
+}
+if (!open(CURL, "@ARGV[0] -s --engine list|"))
+{
+	print "Can't get SSL engine list\n";
+	exit 2;
+}
+while( <CURL> )
+{
+    exit 0 if ( /openssl/ );
+}
+close CURL;
+print "openssl engine not supported\n";
+exit 1;
diff --git a/tests/runtests.pl b/tests/runtests.pl
index d43657131a..bc36a92cb7 100755
--- a/tests/runtests.pl
+++ b/tests/runtests.pl
@@ -1111,6 +1111,7 @@ sub subVariables {
   $$thing =~ s/%PWD/$pwd/g;
   $$thing =~ s/%TFTPPORT/$TFTPPORT/g;
   $$thing =~ s/%TFTP6PORT/$TFTP6PORT/g;
+  $$thing =~ s/%CURL/$CURL/g;
 
   # The purpose of FTPTIME2 and FTPTIME3 is to provide times that can be
   # used for time-out tests and that whould work on most hosts as these
@@ -1226,6 +1227,7 @@ sub singletest {
         my @precheck = getpart("client", "precheck");
         $cmd = $precheck[0];
         chomp $cmd;
+        subVariables \$cmd;
         if($cmd) {
             my @o = `$cmd 2>/dev/null`;
             if($o[0]) {
-- 
GitLab