Add tests for invalid paramters

Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
diff --git a/tests/suites/test_suite_shax.data b/tests/suites/test_suite_shax.data
index f443ecf..5769aa2 100644
--- a/tests/suites/test_suite_shax.data
+++ b/tests/suites/test_suite_shax.data
@@ -2410,3 +2410,7 @@
 SHA-3 Selftest
 depends_on:MBEDTLS_SELF_TEST:MBEDTLS_SHA3_C
 sha3_selftest:
+
+SHA-3 invalid param
+depends_on:MBEDTLS_SHA3_C
+sha3_invalid_param
diff --git a/tests/suites/test_suite_shax.function b/tests/suites/test_suite_shax.function
index dec9f69..0468f72 100644
--- a/tests/suites/test_suite_shax.function
+++ b/tests/suites/test_suite_shax.function
@@ -166,6 +166,26 @@
 }
 /* END_CASE */
 
+/* BEGIN_CASE */
+void sha3_invalid_param()
+{
+    unsigned char output[32];
+    mbedtls_sha3_context ctx;
+
+    mbedtls_sha3_init(&ctx);
+    TEST_EQUAL(mbedtls_sha3_starts(&ctx, MBEDTLS_SHA3_NONE), MBEDTLS_ERR_SHA3_BAD_INPUT_DATA);
+
+    TEST_EQUAL(mbedtls_sha3_starts(&ctx, MBEDTLS_SHA3_256), 0);
+
+    TEST_EQUAL(mbedtls_sha3_finish(&ctx, output, 0), MBEDTLS_ERR_SHA3_BAD_INPUT_DATA);
+    TEST_EQUAL(mbedtls_sha3_finish(&ctx, output, 31), MBEDTLS_ERR_SHA3_BAD_INPUT_DATA);
+    TEST_EQUAL(mbedtls_sha3_finish(&ctx, output, 32), 0);
+
+exit:
+    return;
+}
+/* END_CASE */
+
 /* BEGIN_CASE depends_on:MBEDTLS_SHA3_C */
 void mbedtls_sha3_multi(int family, data_t *in, data_t *hash)
 {