diff --git a/include/mbedtls/error.h b/include/mbedtls/error.h
index 9a8690d..d2d31a8 100644
--- a/include/mbedtls/error.h
+++ b/include/mbedtls/error.h
@@ -129,6 +129,7 @@
  *        Only used when invasive testing is enabled via MBEDTLS_TEST_HOOKS.
  */
 extern void (*mbedtls_test_hook_error_add)( int, int, const char *, int );
+extern void (*mbedtls_test_hook_value)( int test, const char * file, int line );
 #endif
 
 /**
diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h
index a60db7e..1ab0ade 100644
--- a/include/mbedtls/mbedtls_config.h
+++ b/include/mbedtls/mbedtls_config.h
@@ -1683,7 +1683,7 @@
  *
  * Uncomment to enable invasive tests.
  */
-//#define MBEDTLS_TEST_HOOKS
+#define MBEDTLS_TEST_HOOKS
 
 /**
  * \def MBEDTLS_THREADING_ALT
diff --git a/library/psa_crypto.c b/library/psa_crypto.c
index 6e73d12..c7186af 100644
--- a/library/psa_crypto.c
+++ b/library/psa_crypto.c
@@ -1002,6 +1002,10 @@
 
     if( slot->lock_count != 1 )
     {
+#if defined(MBEDTLS_TEST_HOOKS)
+        if( *mbedtls_test_hook_value != NULL )
+            ( *mbedtls_test_hook_value )( slot->lock_count == 1, __FILE__, __LINE__ );
+#endif
         status = PSA_ERROR_CORRUPTION_DETECTED;
     }
 
diff --git a/library/psa_crypto_slot_management.c b/library/psa_crypto_slot_management.c
index 4131e3c..256408d 100644
--- a/library/psa_crypto_slot_management.c
+++ b/library/psa_crypto_slot_management.c
@@ -34,6 +34,7 @@
 
 #include <stdlib.h>
 #include <string.h>
+#include "mbedtls/error.h"
 #if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
 #else
@@ -412,6 +413,13 @@
         return( PSA_SUCCESS );
     }
 
+    slot->lock_count = 1;
+
+#if defined(MBEDTLS_TEST_HOOKS)
+    if( *mbedtls_test_hook_value != NULL )
+        ( *mbedtls_test_hook_value )( slot->lock_count > 0, __FILE__, __LINE__  );
+#endif
+
     return( PSA_ERROR_CORRUPTION_DETECTED );
 }
 
diff --git a/scripts/data_files/error.fmt b/scripts/data_files/error.fmt
index 3be94bd..c2b4b08 100644
--- a/scripts/data_files/error.fmt
+++ b/scripts/data_files/error.fmt
@@ -164,6 +164,7 @@
 
 #if defined(MBEDTLS_TEST_HOOKS)
 void (*mbedtls_test_hook_error_add)( int, int, const char *, int );
+void (*mbedtls_test_hook_value)( int, const char *, int );
 #endif
 
 #endif /* MBEDTLS_ERROR_C || MBEDTLS_ERROR_STRERROR_DUMMY */
diff --git a/tests/include/test/helpers.h b/tests/include/test/helpers.h
index 27e5599..40fcb03 100644
--- a/tests/include/test/helpers.h
+++ b/tests/include/test/helpers.h
@@ -231,4 +231,13 @@
 int mbedtls_test_read_mpi( mbedtls_mpi *X, int radix, const char *s );
 #endif /* MBEDTLS_BIGNUM_C */
 
+/**
+ * \brief   Check value in first parameter.
+ *
+ * \note    If the check fails, fail the test currently being run.
+ */
+#if defined(MBEDTLS_TEST_HOOKS)
+void mbedtls_test_hook_value_check( int test, const char * file, int line );
+#endif
+
 #endif /* TEST_HELPERS_H */
diff --git a/tests/src/helpers.c b/tests/src/helpers.c
index 4d3d53d..bf25f21 100644
--- a/tests/src/helpers.c
+++ b/tests/src/helpers.c
@@ -274,3 +274,13 @@
         return( mbedtls_mpi_read_string( X, radix, s ) );
 }
 #endif
+
+#if defined(MBEDTLS_TEST_HOOKS)
+void mbedtls_test_hook_value_check( int test, const char * file, int line )
+{
+    if ( !test )
+    {
+        mbedtls_test_fail( "Wrong value in test", line, file );
+    }
+}
+#endif
diff --git a/tests/suites/main_test.function b/tests/suites/main_test.function
index 52b586e..9ac5a4a 100644
--- a/tests/suites/main_test.function
+++ b/tests/suites/main_test.function
@@ -239,6 +239,7 @@
 {
 #if defined(MBEDTLS_TEST_HOOKS) && defined (MBEDTLS_ERROR_C)
     mbedtls_test_hook_error_add = &mbedtls_test_err_add_check;
+    mbedtls_test_hook_value = &mbedtls_test_hook_value_check;
 #endif
 
     int ret = mbedtls_test_platform_setup();
