Move the overallocation test to test suites

This way the compiler does not complain about
an overly large allocation made.
Signed-off-by: Andrzej Kurek <andrzej.kurek@arm.com>
diff --git a/programs/test/selftest.c b/programs/test/selftest.c
index 933d06b..cc5e00e 100644
--- a/programs/test/selftest.c
+++ b/programs/test/selftest.c
@@ -77,10 +77,7 @@
     unsigned int buffer_4_size = 4097; /* Allocate more than the usual page size */
     unsigned char *buffer3 = mbedtls_calloc(buffer_3_size, 1);
     unsigned char *buffer4 = mbedtls_calloc(buffer_4_size, 1);
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Walloc-size-larger-than="
-    unsigned char *buffer5 = mbedtls_calloc(SIZE_MAX/2, SIZE_MAX/2);
-#pragma GCC diagnostic pop
+
     if (empty1 == NULL && empty2 == NULL) {
         if (verbose) {
             mbedtls_printf("  CALLOC(0,1): passed (NULL)\n");
@@ -175,13 +172,6 @@
         }
     }
 
-    if (buffer5 != NULL) {
-        ++failures;
-        if (verbose) {
-            mbedtls_printf("  CALLOC(SIZE_MAX/2, SIZE_MAX/2): failed (returned a valid pointer)\n");
-        }
-    }
-
     if (verbose) {
         mbedtls_printf("\n");
     }
@@ -191,7 +181,6 @@
     mbedtls_free(buffer2);
     mbedtls_free(buffer3);
     mbedtls_free(buffer4);
-    mbedtls_free(buffer5);
     return failures;
 }
 #endif /* MBEDTLS_SELF_TEST */
diff --git a/tests/suites/test_suite_platform.data b/tests/suites/test_suite_platform.data
index 4276b8f..4d57450 100644
--- a/tests/suites/test_suite_platform.data
+++ b/tests/suites/test_suite_platform.data
@@ -4,3 +4,6 @@
 
 Time: get seconds
 time_get_seconds:
+
+Check mbedtls_calloc overallocation
+check_mbedtls_calloc_overallocation:SIZE_MAX/2:SIZE_MAX/2
diff --git a/tests/suites/test_suite_platform.function b/tests/suites/test_suite_platform.function
index 61681b8..bc39735 100644
--- a/tests/suites/test_suite_platform.function
+++ b/tests/suites/test_suite_platform.function
@@ -120,3 +120,15 @@
     goto exit;
 }
 /* END_CASE */
+
+/* BEGIN_CASE */
+void check_mbedtls_calloc_overallocation(intmax_t num, intmax_t size)
+{
+    unsigned char *buf;
+    buf = mbedtls_calloc((size_t) num, (size_t) size);
+    TEST_ASSERT(buf == NULL);
+
+exit:
+    mbedtls_free(buf);
+}
+/* END_CASE */