Allow GnuTLS to be enabled via environment
diff --git a/tests/compat.sh b/tests/compat.sh
index b4af463..1558960 100755
--- a/tests/compat.sh
+++ b/tests/compat.sh
@@ -3,28 +3,43 @@
 # Test interop with OpenSSL for each common ciphersuite and version.
 # Also test selfop for ciphersuites not shared with OpenSSL.
 
+# test if those two are set in the environment before assigning defaults
+if [ -n "$GNUTLS_CLI" -a -n "$GNUTLS_SERV" ]; then
+    GNUTLS_AVAILABLE=1
+else
+    GNUTLS_AVAILABLE=0
+fi
+
+# catch undefined variables from now on
 set -u
 
+# initialise counters
 let "tests = 0"
 let "failed = 0"
 let "skipped = 0"
 let "srvmem = 0"
 
-# default values, can be overriden by the environment
+# default commands, can be overriden by the environment
 : ${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}
 
+# default values for options
 MODES="ssl3 tls1 tls1_1 tls1_2"
 VERIFIES="NO YES"
 TYPES="ECDSA RSA PSK"
 FILTER=""
 EXCLUDE='NULL\|DES-CBC-' # avoid plain DES but keep 3DES-EDE-CBC (PolarSSL), DES-CBC3 (OpenSSL)
 VERBOSE=""
-PEERS="OpenSSL PolarSSL" # GnuTLS not enabled by default, 3.2.4 might not be available on all buildbot machines
 MEMCHECK=0
+# GnuTLS not enabled by default, 3.2.4 might not be available everywhere
+if [ "$GNUTLS_AVAILABLE" -gt 0 ]; then
+    PEERS="OpenSSL PolarSSL GnuTLS"
+else
+    PEERS="OpenSSL PolarSSL"
+fi
 
 print_usage() {
     echo "Usage: $0"
@@ -900,6 +915,11 @@
 
                     ;;
 
+                *)
+                    echo "Unkown peer: $PEER" >&2
+                    exit 1
+                    ;;
+
                 esac
 
             done