diff --git a/include/mbedtls/platform_util.h b/include/mbedtls/platform_util.h
index e8fab66..a712764 100644
--- a/include/mbedtls/platform_util.h
+++ b/include/mbedtls/platform_util.h
@@ -41,7 +41,16 @@
 extern "C" {
 #endif
 
-#if defined( MBEDTLS_CHECK_PARAMS ) && !defined(MBEDTLS_PARAM_FAILED)
+#if defined( MBEDTLS_CHECK_PARAMS )
+
+#if defined(MBEDTLS_PARAM_FAILED)
+/** An alternative definition of MBEDTLS_PARAM_FAILED has been set in config.h.
+ *
+ * This flag can be used to check whether it is safe to assume that
+ * MBEDTLS_PARAM_FAILED() will expand to a call to mbedtls_param_failed().
+ */
+#define MBEDTLS_PARAM_FAILED_ALT
+#else
 #define MBEDTLS_PARAM_FAILED( cond ) \
     mbedtls_param_failed( cond, __FILE__, __LINE__ )
 
@@ -67,7 +76,8 @@
 void mbedtls_param_failed( const char* failure_condition,
                            const char* file,
                            int line );
-#endif /* MBEDTLS_CHECK_PARAMS && !MBEDTLS_PARAM_FAILED */
+#endif /* MBEDTLS_PARAM_FAILED */
+#endif /* MBEDTLS_CHECK_PARAMS */
 
 /**
  * \brief       Securely zeroize a buffer
diff --git a/tests/suites/helpers.function b/tests/suites/helpers.function
index 472df42..71390ec 100644
--- a/tests/suites/helpers.function
+++ b/tests/suites/helpers.function
@@ -24,10 +24,9 @@
 #endif
 
 #if defined(MBEDTLS_CHECK_PARAMS)
+#include "mbedtls/platform_util.h"
 #include <setjmp.h>
-#define MBEDTLS_PARAM_FAILED(x)    mbedtls_param_failed( #x, __FILE__, __LINE__ )
-
-#endif /* MBEDTLS_CHECK_PARAMS */
+#endif
 
 #ifdef _MSC_VER
 #include <basetsd.h>
@@ -92,7 +91,8 @@
  *          code that can be tested.
  *
  *          When MBEDTLS_CHECK_PARAMS is enabled, calls to the parameter failure
- *          callback, MBEDTLS_PARAM_FAIL, will be assumed to be a test failure.
+ *          callback, MBEDTLS_PARAM_FAILED(), will be assumed to be a test
+ *          failure.
  *
  *          This macro is not suitable for negative parameter validation tests,
  *          as it assumes the test step will not create an error.
@@ -109,7 +109,7 @@
        }                                                    \
     } while( 0 )
 
-#if defined(MBEDTLS_CHECK_PARAMS)
+#if defined(MBEDTLS_CHECK_PARAMS) && !defined(MBEDTLS_PARAM_FAILED_ALT)
 /**
  * \brief   This macro tests the statement passed to it as a test step or
  *          individual test in a test case. The macro assumes the test will fail
@@ -119,12 +119,12 @@
  *          code on return to confirm the given error code was returned.
  *
  *          When MBEDTLS_CHECK_PARAMS is enabled, calls to the parameter failure
- *          callback, MBEDTLS_PARAM_FAIL, are assumed to indicate the
+ *          callback, MBEDTLS_PARAM_FAILED(), are assumed to indicate the
  *          expected failure, and the test will pass.
  *
  *          This macro is intended for negative parameter validation tests,
  *          where the failing function may return an error value or call
- *          MBEDTLS_PARAM_FAIL to indicate the error.
+ *          MBEDTLS_PARAM_FAILED() to indicate the error.
  *
  * \param   PARAM_ERROR_VALUE   The expected error code.
  *
@@ -148,16 +148,16 @@
  *
  *          It assumes the library function under test cannot return a value and
  *          assumes errors can only be indicated byt calls to
- *          MBEDTLS_PARAM_FAIL.
+ *          MBEDTLS_PARAM_FAILED().
  *
  *          When MBEDTLS_CHECK_PARAMS is enabled, calls to the parameter failure
- *          callback, MBEDTLS_PARAM_FAIL, are assumed to indicate the
+ *          callback, MBEDTLS_PARAM_FAILED(), are assumed to indicate the
  *          expected failure. If MBEDTLS_CHECK_PARAMS is not enabled, no test
  *          can be made.
  *
  *          This macro is intended for negative parameter validation tests,
  *          where the failing function can only return an error by calling
- *          MBEDTLS_PARAM_FAIL to indicate the error.
+ *          MBEDTLS_PARAM_FAILED() to indicate the error.
  *
  * \param   TEST                The test expression to be tested.
  */
@@ -173,23 +173,7 @@
         memcpy(param_fail_jmp, jmp_tmp, sizeof(jmp_buf));                   \
     } while( 0 )
 
-#else
-
-#define TEST_INVALID_PARAM_RET( PARAM_ERR_VALUE, TEST ) \
-    do {                                                \
-        if( (TEST) != (PARAM_ERR_VALUE) )               \
-        {                                               \
-            test_fail( #TEST, __LINE__, __FILE__ );     \
-            goto exit;                                  \
-        }                                               \
-   } while( 0 )
-
-#define TEST_INVALID_PARAM( TEST )     \
-    do {                                                \
-        TEST;                                           \
-    } while( 0 )
-
-#endif /* !defined( MBEDTLS_CHECK_PARAMS ) */
+#endif /* MBEDTLS_CHECK_PARAMS && !MBEDTLS_PARAM_FAILED_ALT */
 
 #define assert(a) if( !( a ) )                                      \
 {                                                                   \
diff --git a/tests/suites/test_suite_aes.function b/tests/suites/test_suite_aes.function
index 062234b..7dab01b 100644
--- a/tests/suites/test_suite_aes.function
+++ b/tests/suites/test_suite_aes.function
@@ -371,7 +371,7 @@
 }
 /* END_CASE */
 
-/* BEGIN_CASE */
+/* BEGIN_CASE depends_on:MBEDTLS_CHECK_PARAMS:!MBEDTLS_PARAM_FAILED_ALT */
 void aes_invalid_param( )
 {
     mbedtls_aes_context dummy_ctx;
diff --git a/tests/suites/test_suite_aes.rest.data b/tests/suites/test_suite_aes.rest.data
index 3ec916d..14b78a6 100644
--- a/tests/suites/test_suite_aes.rest.data
+++ b/tests/suites/test_suite_aes.rest.data
@@ -11,7 +11,6 @@
 aes_decrypt_cbc:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"623a52fcea5d443e48d9181ab32c74":"":MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH
 
 AES - Invalid parameters
-depends_on:MBEDTLS_CHECK_PARAMS
 aes_invalid_param:
 
 AES Selftest
