Add check for the ecp module variants

Signed-off-by: Gabor Mezei <gabor.mezei@arm.com>
diff --git a/library/ecp.c b/library/ecp.c
index 1d690d1..6087256 100644
--- a/library/ecp.c
+++ b/library/ecp.c
@@ -3639,6 +3639,16 @@
 
 #endif /* MBEDTLS_SELF_TEST */
 
+#if defined(MBEDTLS_TEST_HOOKS)
+
+MBEDTLS_STATIC_TESTABLE
+mbedtls_ecp_variant mbedtls_ecp_get_variant()
+{
+    return MBEDTLS_ECP_VARIANT_WITH_MPI_STRUCT;
+}
+
+#endif /* MBEDTLS_TEST_HOOKS */
+
 #endif /* !MBEDTLS_ECP_ALT */
 
 #endif /* MBEDTLS_ECP_LIGHT */
diff --git a/library/ecp_invasive.h b/library/ecp_invasive.h
index 0ea02e2..0a0d361 100644
--- a/library/ecp_invasive.h
+++ b/library/ecp_invasive.h
@@ -48,8 +48,21 @@
 #define MBEDTLS_ECP_WITH_MPI_STRUCT
 #endif
 
+typedef enum {
+    MBEDTLS_ECP_VARIANT_NONE            = 0,
+    MBEDTLS_ECP_VARIANT_WITH_MPI_STRUCT = 1,
+    MBEDTLS_ECP_VARIANT_WITH_MPI_UINT   = 2
+} mbedtls_ecp_variant;
+
 #if defined(MBEDTLS_TEST_HOOKS) && defined(MBEDTLS_ECP_LIGHT)
 
+/** Queries the ecp variant.
+ *
+ * \return  The id of the ecp variant.
+ */
+MBEDTLS_STATIC_TESTABLE
+mbedtls_ecp_variant mbedtls_ecp_get_variant(void);
+
 #if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED)
 /** Generate a private key on a Montgomery curve (Curve25519 or Curve448).
  *
diff --git a/library/ecp_new.c b/library/ecp_new.c
index c212f63..3df6f9f 100644
--- a/library/ecp_new.c
+++ b/library/ecp_new.c
@@ -3639,12 +3639,16 @@
 
 #endif /* MBEDTLS_SELF_TEST */
 
+#if defined(MBEDTLS_TEST_HOOKS)
+
 MBEDTLS_STATIC_TESTABLE
 mbedtls_ecp_variant mbedtls_ecp_get_variant()
 {
     return MBEDTLS_ECP_VARIANT_WITH_MPI_UINT;
 }
 
+#endif /* MBEDTLS_TEST_HOOKS */
+
 #endif /* !MBEDTLS_ECP_ALT */
 
 #endif /* MBEDTLS_ECP_LIGHT */
diff --git a/tests/suites/test_suite_ecp.data b/tests/suites/test_suite_ecp.data
index 1560c54..f10e572 100644
--- a/tests/suites/test_suite_ecp.data
+++ b/tests/suites/test_suite_ecp.data
@@ -1953,3 +1953,6 @@
 ecp_random #25 MBEDTLS_ECP_MOD_COORDINATE(MBEDTLS_ECP_DP_CURVE448)
 depends_on:MBEDTLS_ECP_DP_CURVE448_ENABLED
 ecp_mod_random:MBEDTLS_ECP_DP_CURVE448:MBEDTLS_ECP_MOD_COORDINATE
+
+ecp variant check
+check_variant:
diff --git a/tests/suites/test_suite_ecp.function b/tests/suites/test_suite_ecp.function
index 2658a43..03bbab6 100644
--- a/tests/suites/test_suite_ecp.function
+++ b/tests/suites/test_suite_ecp.function
@@ -1630,3 +1630,18 @@
     mbedtls_free(rX_raw);
 }
 /* END_CASE */
+
+/* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS */
+void check_variant()
+{
+    mbedtls_ecp_variant variant = mbedtls_ecp_get_variant();
+
+#if defined(MBEDTLS_ECP_WITH_MPI_STRUCT)
+    TEST_EQUAL(variant, MBEDTLS_ECP_VARIANT_WITH_MPI_STRUCT);
+#elif defined(MBEDTLS_ECP_WITH_MPI_UINT)
+    TEST_EQUAL(variant, MBEDTLS_ECP_VARIANT_WITH_MPI_UINT);
+#else
+    #error "No ecp variant detected."
+#endif
+}
+/* END_CASE */