diff --git a/tests/run-tests b/tests/run-tests
index 534518858ca28ce524a297fa4db4ecb071ff0b73..fc269a1fcc9a38f07e1fa71fea15d1da2a41745e 100755
--- a/tests/run-tests
+++ b/tests/run-tests
@@ -218,6 +218,12 @@ def run_tests(pyb, tests, args):
             skip_tests.add('extmod/uheapq1.py')             # uheapq not supported by WiPy
             skip_tests.add('extmod/urandom_basic.py')       # requires urandom
             skip_tests.add('extmod/urandom_extra.py')       # requires urandom
+        elif args.target == 'esp8266':
+            skip_tests.add('float/float2int.py')            # requires at least fp32, there's float2int_fp30.py instead
+            skip_tests.add('float/string_format.py')        # requires at least fp32, there's string_format_fp30.py instead
+            skip_tests.add('float/bytes_construct.py')      # requires fp32
+            skip_tests.add('float/bytearray_construct.py')  # requires fp32
+            skip_tests.add('misc/rge_sm.py')                # too large
 
     # Some tests are known to fail on 64-bit machines
     if pyb is None and platform.architecture()[0] == '64bit':