Add a calloc selftest for more than a page
Signed-off-by: Andrzej Kurek <andrzej.kurek@arm.com>
diff --git a/programs/test/selftest.c b/programs/test/selftest.c
index 1c6f50b..f45eb85 100644
--- a/programs/test/selftest.c
+++ b/programs/test/selftest.c
@@ -77,8 +77,10 @@
void *empty2 = mbedtls_calloc(0, 1);
void *buffer1 = mbedtls_calloc(1, 1);
void *buffer2 = mbedtls_calloc(1, 1);
- unsigned int buf_size = 256;
- unsigned char *buffer3 = mbedtls_calloc(buf_size, 1);
+ unsigned int buffer_3_size = 256;
+ 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);
if (empty1 == NULL && empty2 == NULL) {
if (verbose) {
@@ -152,11 +154,23 @@
}
}
- for (unsigned int i = 0; i < buf_size; i++) {
+ for (unsigned int i = 0; i < buffer_3_size; i++) {
if (buffer3[i] != 0) {
++failures;
if (verbose) {
- mbedtls_printf(" CALLOC(%u): failed (memory not initialized to 0)\n", buf_size);
+ mbedtls_printf(" CALLOC(%u): failed (memory not initialized to 0)\n",
+ buffer_3_size);
+ }
+ break;
+ }
+ }
+
+ for (unsigned int i = 0; i < buffer_4_size; i++) {
+ if (buffer4[i] != 0) {
+ ++failures;
+ if (verbose) {
+ mbedtls_printf(" CALLOC(%u): failed (memory not initialized to 0)\n",
+ buffer_4_size);
}
break;
}
@@ -170,6 +184,7 @@
mbedtls_free(buffer1);
mbedtls_free(buffer2);
mbedtls_free(buffer3);
+ mbedtls_free(buffer4);
return failures;
}
#endif /* MBEDTLS_SELF_TEST */