Add tests for ssl_get_bytes_avail()
diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c
index 7f2041b..8af5f64 100644
--- a/programs/ssl/ssl_server2.c
+++ b/programs/ssl/ssl_server2.c
@@ -112,7 +112,12 @@
 
 #define MAX_PSK_LEN     256
 
-/* Size of the basic I/O buffer. Able to hold our default response. */
+/*
+ * Size of the basic I/O buffer. Able to hold our default response.
+ *
+ * You will need to adapt the ssl_get_bytes_avail() test in ssl-opt.sh
+ * if you change this value to something outside the range <= 100 or > 500
+ */
 #define IO_BUF_LEN      200
 
 /*
@@ -1491,9 +1496,10 @@
             memset( larger_buf, 0, ori_len + extra_len );
             memcpy( larger_buf, buf, ori_len );
 
-            /* This read should never fail */
+            /* This read should never fail and get the whole cached data */
             ret = ssl_read( &ssl, larger_buf + ori_len, extra_len );
-            if( ret != extra_len )
+            if( ret != extra_len ||
+                ssl_get_bytes_avail( &ssl ) != 0 )
             {
                 printf( "  ! ssl_read failed on cached data\n" );
                 ret = 1;
diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh
index 724e2de..9ec123c 100755
--- a/tests/ssl-opt.sh
+++ b/tests/ssl-opt.sh
@@ -1352,6 +1352,19 @@
             0 \
             -c "Ciphersuite is TLS-RSA-WITH-AES-128-GCM-SHA256"
 
+# Tests for ssl_get_bytes_avail()
+
+run_test    "ssl_get_bytes_avail #1 (no extra data)" \
+            "$P_SRV" \
+            "$P_CLI request_size=100" \
+            0 \
+            -s "Read from client: 100 bytes read$"
+
+run_test    "ssl_get_bytes_avail #2 (extra data)" \
+            "$P_SRV" \
+            "$P_CLI request_size=500" \
+            0 \
+            -s "Read from client: 500 bytes read (.*+.*)"
 
 # Final report