diff --git a/testsuite/driver/runtests.py b/testsuite/driver/runtests.py
index 9a03601a1f0948ceeb4b613c1c992b9b080718e8..0c3bb0a3c169829167d60e409399fe80a4e88f50 100644
--- a/testsuite/driver/runtests.py
+++ b/testsuite/driver/runtests.py
@@ -47,6 +47,11 @@ ghc_env['TERM'] = 'vt100'
 # Ensure that GHC doesn't go looking for environment files. See #21365.
 ghc_env['GHC_ENVIRONMENT'] = "-"
 
+# Ensure that EMCC doesn't output cache info
+# (cf https://github.com/emscripten-core/emscripten/issues/18607)
+os.environ['EMCC_LOGGING'] = '0'
+ghc_env['EMCC_LOGGING'] = '0'
+
 global config
 config = getConfig() # get it from testglobals
 config.validate()
diff --git a/testsuite/driver/testlib.py b/testsuite/driver/testlib.py
index d98a342a9d02604829475c7fe3bb5dc6c28be938..c183b656ac3b8ef51515b78288207da22c908af9 100644
--- a/testsuite/driver/testlib.py
+++ b/testsuite/driver/testlib.py
@@ -2676,6 +2676,8 @@ def normalise_errmsg(s: str) -> str:
     s = re.sub('.*strip: changes being made to the file will invalidate the code signature in.*\n','',s)
     # clang may warn about unused argument when used as assembler
     s = re.sub('.*warning: argument unused during compilation:.*\n', '', s)
+    # Emscripten displays cache info and old emcc doesn't support EMCC_LOGGING=0
+    s = re.sub('cache:INFO: .*\n', '', s)
 
     return s