Add GnuTLS support to ssl-opt.sh
diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh
index ed0f19c..d435ee6 100755
--- a/tests/ssl-opt.sh
+++ b/tests/ssl-opt.sh
@@ -14,9 +14,13 @@
 : ${P_SRV:=../programs/ssl/ssl_server2}
 : ${P_CLI:=../programs/ssl/ssl_client2}
 : ${OPENSSL_CMD:=openssl} # OPENSSL would conflict with the build system
+: ${GNUTLS_CLI:=gnutls-cli}
+: ${GNUTLS_SERV:=gnutls-serv}
 
 O_SRV="$OPENSSL_CMD s_server -www -cert data_files/server5.crt -key data_files/server5.key"
 O_CLI="echo 'GET / HTTP/1.0' | $OPENSSL_CMD s_client"
+G_SRV="$GNUTLS_SERV --x509certfile data_files/server5.crt --x509keyfile data_files/server5.key"
+G_CLI="$GNUTLS_CLI"
 
 TESTS=0
 FAILS=0
@@ -76,6 +80,20 @@
     fi
 }
 
+# skip next test if GnuTLS isn't available
+requires_gnutls() {
+    if [ -z "${GNUTLS_AVAILABLE:-}" ]; then
+        if ( which "$GNUTLS_CLI" && which "$GNUTLS_SERV" ) >/dev/null; then
+            GNUTLS_AVAILABLE="YES"
+        else
+            GNUTLS_AVAILABLE="NO"
+        fi
+    fi
+    if [ "$GNUTLS_AVAILABLE" = "NO" ]; then
+        SKIP_NEXT="YES"
+    fi
+}
+
 # print_name <name>
 print_name() {
     echo -n "$1 "
@@ -320,6 +338,8 @@
 P_CLI="$P_CLI server_port=$PORT"
 O_SRV="$O_SRV -accept $PORT"
 O_CLI="$O_CLI -connect localhost:$PORT"
+G_SRV="$G_SRV -p $PORT"
+G_CLI="$G_CLI -p $PORT"
 
 # Also pick a unique name for intermediate files
 SRV_OUT="srv_out.$$"
@@ -561,6 +581,13 @@
             -S "server hello, max_fragment_length extension" \
             -C "found max_fragment_length extension"
 
+run_test    "Max fragment length #4 (GnuTLS server)" \
+            "$G_SRV" \
+            "$P_CLI debug_level=4 max_frag_len=4096" \
+            0 \
+            -c "client hello, adding max_fragment_length extension" \
+            -c "found max_fragment_length extension"
+
 # Tests for renegotiation
 
 run_test    "Renegotiation #0 (none)" \