compat.sh: regroup arguments even more
diff --git a/tests/compat.sh b/tests/compat.sh
index 0c17b8f..bc0a63f 100755
--- a/tests/compat.sh
+++ b/tests/compat.sh
@@ -390,40 +390,49 @@
 
 setup_arguments()
 {
+    # avoid an avalanche of errors due to typos
+    case $MODE in
+        ssl3|tls1|tls1_1|tls1_2)
+            ;;
+        *)
+            echo "error: invalid mode: $MODE" >&2
+            exit 1;
+    esac
+
+    P_SERVER_ARGS="server_addr=0.0.0.0 force_version=$MODE"
+    P_CLIENT_ARGS="server_name=0.0.0.0 force_version=$MODE"
+    O_SERVER_ARGS="-www -quiet -cipher NULL,ALL -$MODE"
+    O_CLIENT_ARGS="-$MODE"
+
     if [ "X$VERIFY" = "XYES" ];
     then
-        P_SERVER_BASE="ca_file=data_files/test-ca_cat12.crt auth_mode=required"
-        P_CLIENT_BASE="ca_file=data_files/test-ca_cat12.crt"
-        O_SERVER_BASE="-CAfile data_files/test-ca_cat12.crt -Verify 10"
-        O_CLIENT_BASE="-CAfile data_files/test-ca_cat12.crt"
-    else
-        P_SERVER_BASE=""
-        P_CLIENT_BASE=""
-        O_SERVER_BASE=""
-        O_CLIENT_BASE=""
+        P_SERVER_ARGS="$P_SERVER_ARGS ca_file=data_files/test-ca_cat12.crt auth_mode=required"
+        P_CLIENT_ARGS="$P_CLIENT_ARGS ca_file=data_files/test-ca_cat12.crt"
+        O_SERVER_ARGS="$O_SERVER_ARGS -CAfile data_files/test-ca_cat12.crt -Verify 10"
+        O_CLIENT_ARGS="$O_CLIENT_ARGS -CAfile data_files/test-ca_cat12.crt"
     fi
 
     case $TYPE in
         "ECDSA")
-            P_SERVER_ARGS="$P_SERVER_BASE crt_file=data_files/server5.crt key_file=data_files/server5.key"
-            P_CLIENT_ARGS="$P_CLIENT_BASE crt_file=data_files/server6.crt key_file=data_files/server6.key"
-            O_SERVER_ARGS="$O_SERVER_BASE -cert data_files/server5.crt -key data_files/server5.key"
-            O_CLIENT_ARGS="$O_CLIENT_BASE -cert data_files/server6.crt -key data_files/server6.key"
+            P_SERVER_ARGS="$P_SERVER_ARGS crt_file=data_files/server5.crt key_file=data_files/server5.key"
+            P_CLIENT_ARGS="$P_CLIENT_ARGS crt_file=data_files/server6.crt key_file=data_files/server6.key"
+            O_SERVER_ARGS="$O_SERVER_ARGS -cert data_files/server5.crt -key data_files/server5.key"
+            O_CLIENT_ARGS="$O_CLIENT_ARGS -cert data_files/server6.crt -key data_files/server6.key"
             ;;
 
         "RSA")
-            P_SERVER_ARGS="$P_SERVER_BASE crt_file=data_files/server1.crt key_file=data_files/server1.key"
-            P_CLIENT_ARGS="$P_CLIENT_BASE crt_file=data_files/server2.crt key_file=data_files/server2.key"
-            O_SERVER_ARGS="$O_SERVER_BASE -cert data_files/server1.crt -key data_files/server1.key"
-            O_CLIENT_ARGS="$O_CLIENT_BASE -cert data_files/server2.crt -key data_files/server2.key"
+            P_SERVER_ARGS="$P_SERVER_ARGS crt_file=data_files/server1.crt key_file=data_files/server1.key"
+            P_CLIENT_ARGS="$P_CLIENT_ARGS crt_file=data_files/server2.crt key_file=data_files/server2.key"
+            O_SERVER_ARGS="$O_SERVER_ARGS -cert data_files/server1.crt -key data_files/server1.key"
+            O_CLIENT_ARGS="$O_CLIENT_ARGS -cert data_files/server2.crt -key data_files/server2.key"
             ;;
 
         "PSK")
-            P_SERVER_ARGS="$P_SERVER_BASE psk=6162636465666768696a6b6c6d6e6f70"
-            P_CLIENT_ARGS="$P_CLIENT_BASE psk=6162636465666768696a6b6c6d6e6f70"
+            P_SERVER_ARGS="$P_SERVER_ARGS psk=6162636465666768696a6b6c6d6e6f70"
+            P_CLIENT_ARGS="$P_CLIENT_ARGS psk=6162636465666768696a6b6c6d6e6f70"
             # openssl s_server won't start without certificates...
-            O_SERVER_ARGS="$O_SERVER_BASE -psk 6162636465666768696a6b6c6d6e6f70 -cert data_files/server1.crt -key data_files/server1.key"
-            O_CLIENT_ARGS="$O_CLIENT_BASE -psk 6162636465666768696a6b6c6d6e6f70"
+            O_SERVER_ARGS="$O_SERVER_ARGS -psk 6162636465666768696a6b6c6d6e6f70 -cert data_files/server1.crt -key data_files/server1.key"
+            O_CLIENT_ARGS="$O_CLIENT_ARGS -psk 6162636465666768696a6b6c6d6e6f70"
             ;;
     esac
 }
@@ -434,15 +443,6 @@
 for MODE in $MODES;
 do
 
-# avoid an avalanche of errors due to typos
-case $MODE in
-    ssl3|tls1|tls1_1|tls1_2)
-        ;;
-    *)
-        echo "error: invalid mode: $MODE" >&2
-        exit 1;
-esac
-
 echo "-----------"
 echo "Running for $MODE (Verify: $VERIFY)"
 echo "-----------"
@@ -453,8 +453,8 @@
 setup_arguments
 setup_ciphersuites
 
-log "$OPENSSL s_server -www -quiet -cipher NULL,ALL $O_SERVER_ARGS -$MODE"
-$OPENSSL s_server -www -quiet -cipher NULL,ALL $O_SERVER_ARGS -$MODE >/dev/null 2>&1 &
+log "$OPENSSL s_server $O_SERVER_ARGS"
+$OPENSSL s_server $O_SERVER_ARGS >/dev/null 2>&1 &
 PROCESS_ID=$!
 
 sleep 1
@@ -462,8 +462,8 @@
 for i in $P_CIPHERS;
 do
     let "tests++"
-    log "../programs/ssl/ssl_client2 $P_CLIENT_ARGS force_ciphersuite=$i force_version=$MODE"
-    RESULT="$( ../programs/ssl/ssl_client2 $P_CLIENT_ARGS force_ciphersuite=$i force_version=$MODE )"
+    log "../programs/ssl/ssl_client2 $P_CLIENT_ARGS force_ciphersuite=$i"
+    RESULT="$( ../programs/ssl/ssl_client2 $P_CLIENT_ARGS force_ciphersuite=$i )"
     EXIT=$?
     echo -n "OpenSSL Server - PolarSSL Client - $i : $EXIT - "
     if [ "$EXIT" = "2" ];
@@ -473,8 +473,8 @@
     elif [ "$EXIT" != "0" ];
     then
         echo Failed
-        echo "$OPENSSL s_server -www -quiet -cipher NULL,ALL $O_SERVER_ARGS -$MODE"
-        echo "ssl_client2 force_ciphersuite=$i force_version=$MODE $P_CLIENT_ARGS"
+        echo "$OPENSSL s_server $O_SERVER_ARGS"
+        echo "ssl_client2 force_ciphersuite=$i $P_CLIENT_ARGS"
         echo $RESULT
         let "failed++"
     else
@@ -484,8 +484,8 @@
 kill $PROCESS_ID 2>/dev/null
 wait $PROCESS_ID 2>/dev/null
 
-log "../programs/ssl/ssl_server2 server_addr=0.0.0.0 $P_SERVER_ARGS force_version=$MODE > /dev/null"
-../programs/ssl/ssl_server2 server_addr=0.0.0.0 $P_SERVER_ARGS force_version=$MODE > /dev/null &
+log "../programs/ssl/ssl_server2 $P_SERVER_ARGS > /dev/null"
+../programs/ssl/ssl_server2 $P_SERVER_ARGS > /dev/null &
 PROCESS_ID=$!
 
 sleep 1
@@ -493,8 +493,8 @@
 for i in $O_CIPHERS;
 do
     let "tests++"
-    log "$OPENSSL s_client -$MODE -cipher $i $O_CLIENT_ARGS"
-    RESULT="$( ( echo -e 'GET HTTP/1.0'; echo; sleep 1 ) | $OPENSSL s_client -$MODE -cipher $i $O_CLIENT_ARGS 2>&1 )"
+    log "$OPENSSL s_client $O_CLIENT_ARGS -cipher $i"
+    RESULT="$( ( echo -e 'GET HTTP/1.0'; echo; sleep 1 ) | $OPENSSL s_client $O_CLIENT_ARGS -cipher $i 2>&1 )"
     EXIT=$?
     echo -n "PolarSSL Server - OpenSSL Client - $i : $EXIT - "
 
@@ -507,8 +507,8 @@
             let "skipped++"
         else
             echo Failed
-            echo "ssl_server2 $P_SERVER_ARGS force_version=$MODE"
-            echo "$OPENSSL s_client -$MODE -cipher $i $O_CLIENT_ARGS"
+            echo "ssl_server2 $P_SERVER_ARGS"
+            echo "$OPENSSL s_client $O_CLIENT_ARGS -cipher $i"
             echo $RESULT
             let "failed++"
         fi
@@ -522,8 +522,8 @@
 for i in $P_CIPHERS;
 do
     let "tests++"
-    log "../programs/ssl/ssl_client2 force_ciphersuite=$i force_version=$MODE $P_CLIENT_ARGS"
-    RESULT="$( ../programs/ssl/ssl_client2 force_ciphersuite=$i force_version=$MODE $P_CLIENT_ARGS )"
+    log "../programs/ssl/ssl_client2 force_ciphersuite=$i $P_CLIENT_ARGS"
+    RESULT="$( ../programs/ssl/ssl_client2 force_ciphersuite=$i $P_CLIENT_ARGS )"
     EXIT=$?
     echo -n "PolarSSL Server - PolarSSL Client - $i : $EXIT - "
     if [ "$EXIT" = "2" ];
@@ -534,7 +534,7 @@
     then
         echo Failed
         echo "ssl_server2 $P_SERVER_ARGS"
-        echo "ssl_client2 force_ciphersuite=$i force_version=$MODE $P_CLIENT_ARGS"
+        echo "ssl_client2 force_ciphersuite=$i $P_CLIENT_ARGS"
         echo $RESULT
         let "failed++"
     else