Add many test cases involving 0

Test both 0 represented with 0 limbs ("0 (null)") and 0 represented
with 1 limb ("0 (1 limb)"), because occasionally there are bugs with
0-limb bignums and occasionally there are bugs with removing leading
zero limbs.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function
index ae80fda..cd364da 100644
--- a/tests/suites/test_suite_mpi.function
+++ b/tests/suites/test_suite_mpi.function
@@ -749,7 +749,8 @@
 
     TEST_ASSERT( mbedtls_mpi_grow( &X, before ) == 0 );
     TEST_ASSERT( used <= before );
-    memset( X.p, 0x2a, used * sizeof( mbedtls_mpi_uint ) );
+    if( before > 0 )
+        memset( X.p, 0x2a, used * sizeof( mbedtls_mpi_uint ) );
     TEST_ASSERT( mbedtls_mpi_shrink( &X, min ) == 0 );
     TEST_ASSERT( X.n == (size_t) after );