diff --git a/programs/test/metatest.c b/programs/test/metatest.c
index 6e476b7..0910798 100644
--- a/programs/test/metatest.c
+++ b/programs/test/metatest.c
@@ -150,18 +150,22 @@
     /* Leak of a heap object */
 }
 
-/* name = "test_memory_poison_%(start)_%(offset)_%(count)"
+/* name = "test_memory_poison_%(start)_%(offset)_%(count)_%(direction)"
  * Poison a region starting at start from an 8-byte aligned origin,
  * encompassing count bytes. Access the region at offset from the start.
+ * %(start), %(offset) and %(count) are decimal integers.
+ * %(direction) is either the character 'r' for read or 'w' for write.
  */
 void test_memory_poison(const char *name)
 {
     size_t start = 0, offset = 0, count = 0;
+    char direction = 'r';
     if (sscanf(name,
                "%*[^0-9]%" MBEDTLS_PRINTF_SIZET
                "%*[^0-9]%" MBEDTLS_PRINTF_SIZET
-               "%*[^0-9]%" MBEDTLS_PRINTF_SIZET,
-               &start, &offset, &count) != 3) {
+               "%*[^0-9]%" MBEDTLS_PRINTF_SIZET
+               "_%c",
+               &start, &offset, &count, &direction) != 4) {
         mbedtls_fprintf(stderr, "%s: Bad name format: %s\n", __func__, name);
         return;
     }
@@ -195,7 +199,12 @@
     }
 
     MBEDTLS_TEST_MEMORY_POISON(aligned.buf + start, count);
-    mbedtls_printf("%u\n", (unsigned) aligned.buf[start + offset]);
+
+    if (direction == 'w') {
+        aligned.buf[start + offset] = 'b';
+    } else {
+        mbedtls_printf("%u\n", (unsigned) aligned.buf[start + offset]);
+    }
 }
 
 
@@ -346,14 +355,22 @@
     { "double_free", "asan", double_free },
     { "read_uninitialized_stack", "msan", read_uninitialized_stack },
     { "memory_leak", "asan", memory_leak },
-    { "test_memory_poison_0_0_8", "asan", test_memory_poison },
-    { "test_memory_poison_0_7_8", "asan", test_memory_poison },
-    { "test_memory_poison_0_0_1", "asan", test_memory_poison },
-    { "test_memory_poison_0_1_2", "asan", test_memory_poison },
-    { "test_memory_poison_7_0_8", "asan", test_memory_poison },
-    { "test_memory_poison_7_7_8", "asan", test_memory_poison },
-    { "test_memory_poison_7_0_1", "asan", test_memory_poison },
-    { "test_memory_poison_7_1_2", "asan", test_memory_poison },
+    { "test_memory_poison_0_0_8_r", "asan", test_memory_poison },
+    { "test_memory_poison_0_0_8_w", "asan", test_memory_poison },
+    { "test_memory_poison_0_7_8_r", "asan", test_memory_poison },
+    { "test_memory_poison_0_7_8_w", "asan", test_memory_poison },
+    { "test_memory_poison_0_0_1_r", "asan", test_memory_poison },
+    { "test_memory_poison_0_0_1_w", "asan", test_memory_poison },
+    { "test_memory_poison_0_1_2_r", "asan", test_memory_poison },
+    { "test_memory_poison_0_1_2_w", "asan", test_memory_poison },
+    { "test_memory_poison_7_0_8_r", "asan", test_memory_poison },
+    { "test_memory_poison_7_0_8_w", "asan", test_memory_poison },
+    { "test_memory_poison_7_7_8_r", "asan", test_memory_poison },
+    { "test_memory_poison_7_7_8_w", "asan", test_memory_poison },
+    { "test_memory_poison_7_0_1_r", "asan", test_memory_poison },
+    { "test_memory_poison_7_0_1_w", "asan", test_memory_poison },
+    { "test_memory_poison_7_1_2_r", "asan", test_memory_poison },
+    { "test_memory_poison_7_1_2_w", "asan", test_memory_poison },
     { "mutex_lock_not_initialized", "pthread", mutex_lock_not_initialized },
     { "mutex_unlock_not_initialized", "pthread", mutex_unlock_not_initialized },
     { "mutex_free_not_initialized", "pthread", mutex_free_not_initialized },
