compat.sh: use file output (prep. for valgrind)
diff --git a/tests/compat.sh b/tests/compat.sh
index 1c3f944..2be70c4 100755
--- a/tests/compat.sh
+++ b/tests/compat.sh
@@ -457,7 +457,7 @@
     SERVER_NAME=$1
 
     log "$SERVER_CMD"
-    $SERVER_CMD >/dev/null 2>&1 &
+    $SERVER_CMD >srv_out 2>&1 &
     PROCESS_ID=$!
 
     sleep 1
@@ -474,29 +474,39 @@
 
     kill $PROCESS_ID 2>/dev/null
     wait $PROCESS_ID 2>/dev/null
+    rm -f srv_out
 }
 
 # kill the running server (used when killed by signal)
 cleanup() {
+    rm -f srv_out cli_out
     kill $PROCESS_ID
     exit 1
 }
 
 # run_client <name> <cipher>
 run_client() {
+    # announce what we're going to do
+    let "tests++"
+    VERIF=$(echo $VERIFY | tr '[:upper:]' '[:lower:]')
+    TITLE="${1:0:1}->${SERVER_NAME:0:1} $MODE,$VERIF $2 "
+    echo -n "$TITLE"
+    LEN=`echo "$TITLE" | wc -c`
+    LEN=`echo 72 - $LEN | bc`
+    for i in `seq 1 $LEN`; do echo -n '.'; done; echo -n ' '
+
     # run the command and interpret result
     case $1 in
         [Oo]pen*)
             CLIENT_CMD="$OPENSSL s_client $O_CLIENT_ARGS -cipher $2"
             log "$CLIENT_CMD"
-            OUTPUT="$( ( echo -e 'GET HTTP/1.0'; echo; ) | $CLIENT_CMD 2>&1 )"
+            ( echo -e 'GET HTTP/1.0'; echo; ) | $CLIENT_CMD > cli_out 2>&1
             EXIT=$?
 
             if [ "$EXIT" == "0" ]; then
                 RESULT=0
             else
-                SUPPORTED="$( echo $OUTPUT | grep 'Cipher is (NONE)' )"
-                if [ "X$SUPPORTED" != "X" ]; then
+                if grep 'Cipher is (NONE)' cli_out >/dev/null; then
                     RESULT=1
                 else
                     RESULT=2
@@ -507,7 +517,7 @@
         [Pp]olar*)
             CLIENT_CMD="../programs/ssl/ssl_client2 $P_CLIENT_ARGS force_ciphersuite=$2"
             log "$CLIENT_CMD"
-            OUTPUT="$( $CLIENT_CMD )"
+            $CLIENT_CMD > cli_out
             EXIT=$?
 
             case $EXIT in
@@ -524,13 +534,6 @@
     esac
 
     # report and count result
-    let "tests++"
-    VERIF=$(echo $VERIFY | tr '[:upper:]' '[:lower:]')
-    TITLE="${1:0:1}->${SERVER_NAME:0:1} $MODE,$VERIF $2 "
-    echo -n "$TITLE"
-    LEN=`echo "$TITLE" | wc -c`
-    LEN=`echo 72 - $LEN | bc`
-    for i in `seq 1 $LEN`; do echo -n '.'; done; echo -n ' '
     case $RESULT in
         "0")
             echo PASS
@@ -544,10 +547,12 @@
             echo "  ! $SERVER_CMD"
             echo "  ! $CLIENT_CMD"
             echo -n "  ! ... "
-            echo "$OUTPUT" | tail -c72
+            tail -n1 cli_out
             let "failed++"
             ;;
     esac
+
+    rm -f cli_out
 }
 
 #