diff --git a/tests/unix/extra_coverage.py.exp b/tests/unix/extra_coverage.py.exp
index 2b3f6846713ad3caae3dc05af97cc0c0e155d6c9..12d9e1cb6e683ab7c07e9b154a104fc0031f0e0d 100644
--- a/tests/unix/extra_coverage.py.exp
+++ b/tests/unix/extra_coverage.py.exp
@@ -38,6 +38,7 @@ ementation
 # runtime utils
 TypeError: can't convert str to int
 TypeError: unsupported types for : 'str', 'str'
+Warning: test
 ('0123456789', b'0123456789')
 7300
 7300
diff --git a/unix/coverage.c b/unix/coverage.c
index 2abfc870f30f4ed02f88c81a129cf033615f0a69..033f09ed3036611324cac03a5beef712c361ea33 100644
--- a/unix/coverage.c
+++ b/unix/coverage.c
@@ -6,6 +6,7 @@
 #include "py/repl.h"
 #include "py/mpz.h"
 #include "py/builtin.h"
+#include "py/emit.h"
 
 #if defined(MICROPY_UNIX_COVERAGE)
 
@@ -130,6 +131,11 @@ STATIC mp_obj_t extra_coverage(void) {
         mp_call_function_2_protected(MP_OBJ_FROM_PTR(&mp_builtin_divmod_obj), mp_obj_new_str("abc", 3, false), mp_obj_new_str("abc", 3, false));
     }
 
+    // warning
+    {
+        mp_emitter_warning(MP_PASS_CODE_SIZE, "test");
+    }
+
     // return a tuple of data for testing on the Python side
     mp_obj_t items[] = {(mp_obj_t)&str_no_hash_obj, (mp_obj_t)&bytes_no_hash_obj};
     return mp_obj_new_tuple(MP_ARRAY_SIZE(items), items);