tls13_compat_tests:Add generate all option

Signed-off-by: Jerry Yu <jerry.h.yu@arm.com>
diff --git a/tests/scripts/generate_tls13_compat_tests.py b/tests/scripts/generate_tls13_compat_tests.py
index 28f82bd..2e34ebb 100755
--- a/tests/scripts/generate_tls13_compat_tests.py
+++ b/tests/scripts/generate_tls13_compat_tests.py
@@ -25,6 +25,7 @@
 import sys
 import abc
 import argparse
+import itertools
 
 # pylint: disable=useless-super-delegation
 
@@ -373,6 +374,9 @@
 def main():
     parser = argparse.ArgumentParser()
 
+    parser.add_argument('-a', '--generate-all-tls13-compat-tests', action='store_true',
+                        default=False, help='Generate all available tls13 compat tests')
+
     parser.add_argument('--list-ciphers', action='store_true',
                         default=False, help='List supported ciphersuites')
 
@@ -405,6 +409,15 @@
                         help='Choose cipher suite for test')
 
     args = parser.parse_args()
+    if args.generate_all_tls13_compat_tests:
+        for i in itertools.product(CIPHER_SUITE_IANA_VALUE.keys(), SIG_ALG_IANA_VALUE.keys(),
+                                   NAMED_GROUP_IANA_VALUE.keys(), SERVER_CLS.keys(),
+                                   CLIENT_CLS.keys()):
+            generate_compat_test(
+                **dict(zip(['cipher', 'sig_alg', 'named_group', 'server', 'client'], i)))
+            print()
+        return 0
+
     if args.list_ciphers or args.list_sig_algs or args.list_named_groups \
             or args.list_servers or args.list_clients:
         if args.list_ciphers:
diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh
index a51b49f..1e1030c 100755
--- a/tests/ssl-opt.sh
+++ b/tests/ssl-opt.sh
@@ -1291,22 +1291,7 @@
 
 run_test_tls13_compat()
 {
-    for server in $(scripts/generate_tls13_compat_tests.py --list-servers)
-    do
-        for client in $(scripts/generate_tls13_compat_tests.py --list-clients)
-        do
-            for cipher in $(scripts/generate_tls13_compat_tests.py --list-ciphers)
-            do
-                for sig_alg in $(scripts/generate_tls13_compat_tests.py --list-sig-algs)
-                do
-                    for named_group in $(scripts/generate_tls13_compat_tests.py --list-named-groups)
-                    do
-                        eval "$(scripts/generate_tls13_compat_tests.py $server $client $cipher $sig_alg $named_group)"
-                    done
-                done
-            done
-        done
-    done
+    eval "$(scripts/generate_tls13_compat_tests.py -a)"
 }
 
 cleanup() {