diff --git a/tests/extmod/machine1.py b/tests/extmod/machine1.py
index 433a180376cdf2af49c6c6cfbd3cdda930b0bb57..e0c56116842b5437e32762bfba0a868effffd578 100644
--- a/tests/extmod/machine1.py
+++ b/tests/extmod/machine1.py
@@ -5,7 +5,8 @@ try:
         import umachine as machine
     except ImportError:
         import machine
-except ImportError:
+    machine.mem8
+except:
     print("SKIP")
     import sys
     sys.exit()
diff --git a/tests/extmod/ubinascii_a2b_base64.py b/tests/extmod/ubinascii_a2b_base64.py
index 97c4519508906ee3586b25f78589f48d8c67d31a..58eb0b50b62655f7b7c6c1c8e5b72c2de5da5d82 100644
--- a/tests/extmod/ubinascii_a2b_base64.py
+++ b/tests/extmod/ubinascii_a2b_base64.py
@@ -1,7 +1,12 @@
 try:
-    import ubinascii as binascii
+    try:
+        import ubinascii as binascii
+    except ImportError:
+        import binascii
 except ImportError:
-    import binascii
+    import sys
+    print("SKIP")
+    sys.exit()
 
 print(binascii.a2b_base64(b''))
 print(binascii.a2b_base64(b'Zg=='))
diff --git a/tests/extmod/ubinascii_b2a_base64.py b/tests/extmod/ubinascii_b2a_base64.py
index fdcaf32dd84dbee973e224c44726a59cbd1f0f23..1c0c30311d8831481dab6940ed9dbb33ec58232a 100644
--- a/tests/extmod/ubinascii_b2a_base64.py
+++ b/tests/extmod/ubinascii_b2a_base64.py
@@ -1,7 +1,12 @@
 try:
-    import ubinascii as binascii
+    try:
+        import ubinascii as binascii
+    except ImportError:
+        import binascii
 except ImportError:
-    import binascii
+    import sys
+    print("SKIP")
+    sys.exit()
 
 print(binascii.b2a_base64(b''))
 print(binascii.b2a_base64(b'f'))
diff --git a/tests/extmod/ubinascii_crc32.py b/tests/extmod/ubinascii_crc32.py
index 2c4017751808a7f692dff71f9a18a12d4d24420f..b82c44d6bfc7feec16b02d9a4352f8d231522231 100644
--- a/tests/extmod/ubinascii_crc32.py
+++ b/tests/extmod/ubinascii_crc32.py
@@ -1,7 +1,13 @@
 try:
-    import ubinascii as binascii
+    try:
+        import ubinascii as binascii
+    except ImportError:
+        import binascii
 except ImportError:
-    import binascii
+    import sys
+    print("SKIP")
+    sys.exit()
+
 try:
     binascii.crc32
 except AttributeError:
diff --git a/tests/extmod/ubinascii_hexlify.py b/tests/extmod/ubinascii_hexlify.py
index 14c37cb4be61a667ed3d6b010a1c080a687439f4..5d70bda96df32093190ea3375985cfa15e8d25cb 100644
--- a/tests/extmod/ubinascii_hexlify.py
+++ b/tests/extmod/ubinascii_hexlify.py
@@ -1,7 +1,12 @@
 try:
-    import ubinascii as binascii
+    try:
+        import ubinascii as binascii
+    except ImportError:
+        import binascii
 except ImportError:
-    import binascii
+    import sys
+    print("SKIP")
+    sys.exit()
 
 print(binascii.hexlify(b'\x00\x01\x02\x03\x04\x05\x06\x07'))
 print(binascii.hexlify(b'\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f'))
diff --git a/tests/extmod/ubinascii_micropython.py b/tests/extmod/ubinascii_micropython.py
index d68da3205d2e4dcf48d1b0b8558df25e2f797346..96f566bd147bae0ecb817b3c89993724d7b10578 100644
--- a/tests/extmod/ubinascii_micropython.py
+++ b/tests/extmod/ubinascii_micropython.py
@@ -1,7 +1,12 @@
 try:
-    import ubinascii as binascii
+    try:
+        import ubinascii as binascii
+    except ImportError:
+        import binascii
 except ImportError:
-    import binascii
+    import sys
+    print("SKIP")
+    sys.exit()
 
 # two arguments supported in uPy but not CPython
 a = binascii.hexlify(b'123', ':')
diff --git a/tests/extmod/ubinascii_unhexlify.py b/tests/extmod/ubinascii_unhexlify.py
index 99c2c0208dd3e6d44db4570bdb4c50a2a5016cbd..e669789ba8b679b47e7c2da5524a387f715074fd 100644
--- a/tests/extmod/ubinascii_unhexlify.py
+++ b/tests/extmod/ubinascii_unhexlify.py
@@ -1,7 +1,12 @@
 try:
-    import ubinascii as binascii
+    try:
+        import ubinascii as binascii
+    except ImportError:
+        import binascii
 except ImportError:
-    import binascii
+    import sys
+    print("SKIP")
+    sys.exit()
 
 print(binascii.unhexlify(b'0001020304050607'))
 print(binascii.unhexlify(b'08090a0b0c0d0e0f'))
diff --git a/tests/extmod/uctypes_array_assign_le.py b/tests/extmod/uctypes_array_assign_le.py
index 18d63f8bf9a1dfb851a11328c65174f2d44000f8..bae467d092ca148dd3910ffd4c5fcb39fe166023 100644
--- a/tests/extmod/uctypes_array_assign_le.py
+++ b/tests/extmod/uctypes_array_assign_le.py
@@ -1,4 +1,9 @@
-import uctypes
+try:
+    import uctypes
+except ImportError:
+    import sys
+    print("SKIP")
+    sys.exit()
 
 desc = {
     # arr is array at offset 0, of UINT8 elements, array size is 2
diff --git a/tests/extmod/uctypes_array_assign_native_le.py b/tests/extmod/uctypes_array_assign_native_le.py
index 632c4d252bad5acd4dcde3eb4ee5b15ad199021e..474b7e0f2d95fe7b489327d1703bf45b8cdc3a66 100644
--- a/tests/extmod/uctypes_array_assign_native_le.py
+++ b/tests/extmod/uctypes_array_assign_native_le.py
@@ -1,5 +1,9 @@
 import sys
-import uctypes
+try:
+    import uctypes
+except ImportError:
+    print("SKIP")
+    sys.exit()
 
 if sys.byteorder != "little":
     print("SKIP")
diff --git a/tests/extmod/uctypes_bytearray.py b/tests/extmod/uctypes_bytearray.py
index 7294b7ea45ecd55c7f78bde46db589c02d95c576..bf7845ab266f5002c9cb518f5b48be80e2dec78a 100644
--- a/tests/extmod/uctypes_bytearray.py
+++ b/tests/extmod/uctypes_bytearray.py
@@ -1,4 +1,9 @@
-import uctypes
+try:
+    import uctypes
+except ImportError:
+    import sys
+    print("SKIP")
+    sys.exit()
 
 desc = {
     "arr": (uctypes.ARRAY | 0, uctypes.UINT8 | 2),
diff --git a/tests/extmod/uctypes_le.py b/tests/extmod/uctypes_le.py
index 5ae410b01179c601c344a6f320a995db48e3c2f5..829beda58b78f109152174a6e5f6bf34d1360e8e 100644
--- a/tests/extmod/uctypes_le.py
+++ b/tests/extmod/uctypes_le.py
@@ -1,4 +1,9 @@
-import uctypes
+try:
+    import uctypes
+except ImportError:
+    import sys
+    print("SKIP")
+    sys.exit()
 
 desc = {
     "s0": uctypes.UINT16 | 0,
diff --git a/tests/extmod/uctypes_le_float.py b/tests/extmod/uctypes_le_float.py
index c85b75f36c6ec4df2cea1d45b7dfedec5c5b523a..a61305ba8666a2f81ff673df61bc659e79e56ce9 100644
--- a/tests/extmod/uctypes_le_float.py
+++ b/tests/extmod/uctypes_le_float.py
@@ -1,4 +1,9 @@
-import uctypes
+try:
+    import uctypes
+except ImportError:
+    import sys
+    print("SKIP")
+    sys.exit()
 
 desc = {
     "f32": uctypes.FLOAT32 | 0,
diff --git a/tests/extmod/uctypes_native_float.py b/tests/extmod/uctypes_native_float.py
index 89aac8bf38484c512816616ed10a1189aad3bf03..80cb54383dce0075b76dd18b9ce49bb5dfe94ba3 100644
--- a/tests/extmod/uctypes_native_float.py
+++ b/tests/extmod/uctypes_native_float.py
@@ -1,4 +1,9 @@
-import uctypes
+try:
+    import uctypes
+except ImportError:
+    import sys
+    print("SKIP")
+    sys.exit()
 
 desc = {
     "f32": uctypes.FLOAT32 | 0,
diff --git a/tests/extmod/uctypes_native_le.py b/tests/extmod/uctypes_native_le.py
index ef0f9f5e9527dde2f2424f077bf0a7e677e52635..5900224d41a9a7b89b12ed096f5ae2dedb945772 100644
--- a/tests/extmod/uctypes_native_le.py
+++ b/tests/extmod/uctypes_native_le.py
@@ -2,7 +2,11 @@
 # Codepaths for packed vs native structures are different. This test only works
 # on little-endian machine (no matter if 32 or 64 bit).
 import sys
-import uctypes
+try:
+    import uctypes
+except ImportError:
+    print("SKIP")
+    sys.exit()
 
 if sys.byteorder != "little":
     print("SKIP")
diff --git a/tests/extmod/uctypes_print.py b/tests/extmod/uctypes_print.py
index 71981ce7eac0610b17e808cc96c77541c7bfadb9..76a009dc751ca3bb176e60dc5b921431abd38581 100644
--- a/tests/extmod/uctypes_print.py
+++ b/tests/extmod/uctypes_print.py
@@ -1,6 +1,10 @@
 # test printing of uctypes objects
-
-import uctypes
+try:
+    import uctypes
+except ImportError:
+    import sys
+    print("SKIP")
+    sys.exit()
 
 # we use an address of "0" because we just want to print something deterministic
 # and don't actually need to set/get any values in the struct
diff --git a/tests/extmod/uctypes_ptr_le.py b/tests/extmod/uctypes_ptr_le.py
index d0216dfb81477da167cc7575d1b205c66b792ef0..e8a6243ce1ee3949d9a826b1879ee4d06b18ce3b 100644
--- a/tests/extmod/uctypes_ptr_le.py
+++ b/tests/extmod/uctypes_ptr_le.py
@@ -1,5 +1,9 @@
 import sys
-import uctypes
+try:
+    import uctypes
+except ImportError:
+    print("SKIP")
+    sys.exit()
 
 if sys.byteorder != "little":
     print("SKIP")
diff --git a/tests/extmod/uctypes_ptr_native_le.py b/tests/extmod/uctypes_ptr_native_le.py
index 6f011c3c2be8cd8aa1061957389600bd360c0b56..9b016c04d56cbd27112ec1d889b060cef6ab53f7 100644
--- a/tests/extmod/uctypes_ptr_native_le.py
+++ b/tests/extmod/uctypes_ptr_native_le.py
@@ -1,5 +1,9 @@
 import sys
-import uctypes
+try:
+    import uctypes
+except ImportError:
+    print("SKIP")
+    sys.exit()
 
 if sys.byteorder != "little":
     print("SKIP")
diff --git a/tests/extmod/uctypes_sizeof.py b/tests/extmod/uctypes_sizeof.py
index fcfd8ecd748dd76832e5790504b4f1a860cac920..266cd06943263f775715b89a08ebcfe81598c659 100644
--- a/tests/extmod/uctypes_sizeof.py
+++ b/tests/extmod/uctypes_sizeof.py
@@ -1,4 +1,9 @@
-import uctypes
+try:
+    import uctypes
+except ImportError:
+    import sys
+    print("SKIP")
+    sys.exit()
 
 desc = {
     # arr is array at offset 0, of UINT8 elements, array size is 2
diff --git a/tests/extmod/uctypes_sizeof_native.py b/tests/extmod/uctypes_sizeof_native.py
index f830a1f85e0fff6938662108ece8aa9700ed7178..f676c8c6de74af48756a2ea37d0162f4d91803b8 100644
--- a/tests/extmod/uctypes_sizeof_native.py
+++ b/tests/extmod/uctypes_sizeof_native.py
@@ -1,4 +1,9 @@
-import uctypes
+try:
+    import uctypes
+except ImportError:
+    import sys
+    print("SKIP")
+    sys.exit()
 
 S1 = {}
 assert uctypes.sizeof(S1) == 0
diff --git a/tests/extmod/uheapq1.py b/tests/extmod/uheapq1.py
index e71f817ef8c5e2e7f45eb744e43e3eccdc06fd5c..4b0e5de57ec8d03f4347bc1912ddccbb756ec47d 100644
--- a/tests/extmod/uheapq1.py
+++ b/tests/extmod/uheapq1.py
@@ -1,7 +1,12 @@
 try:
     import uheapq as heapq
 except:
-    import heapq
+    try:
+        import heapq
+    except ImportError:
+        import sys
+        print("SKIP")
+        sys.exit()
 
 try:
     heapq.heappop([])
diff --git a/tests/extmod/ujson_dumps.py b/tests/extmod/ujson_dumps.py
index c0ee60d736823fdf2f06a8011c0935f24cf0948d..4a02f51704e2a05ff3ba40f85d210180cb2b8e32 100644
--- a/tests/extmod/ujson_dumps.py
+++ b/tests/extmod/ujson_dumps.py
@@ -1,7 +1,12 @@
 try:
     import ujson as json
 except ImportError:
-    import json
+    try:
+        import json
+    except ImportError:
+        import sys
+        print("SKIP")
+        sys.exit()
 
 print(json.dumps(False))
 print(json.dumps(True))
diff --git a/tests/extmod/ujson_dumps_extra.py b/tests/extmod/ujson_dumps_extra.py
index 0e593c3e93338ef6a4f4791e2250c1b88a6416b4..a52e8224c4c43fec5ad281d07f986de652f047b5 100644
--- a/tests/extmod/ujson_dumps_extra.py
+++ b/tests/extmod/ujson_dumps_extra.py
@@ -1,5 +1,10 @@
 # test uPy ujson behaviour that's not valid in CPy
 
-import ujson
+try:
+    import ujson
+except ImportError:
+    import sys
+    print("SKIP")
+    sys.exit()
 
 print(ujson.dumps(b'1234'))
diff --git a/tests/extmod/ujson_dumps_float.py b/tests/extmod/ujson_dumps_float.py
index f6ba5f11396115795bc0ea85d1045435b99d7d98..d949ea6dddfa1051a42fc94dd89f2a017cb048fe 100644
--- a/tests/extmod/ujson_dumps_float.py
+++ b/tests/extmod/ujson_dumps_float.py
@@ -1,6 +1,11 @@
 try:
     import ujson as json
 except ImportError:
-    import json
+    try:
+        import json
+    except ImportError:
+        import sys
+        print("SKIP")
+        sys.exit()
 
 print(json.dumps(1.2))
diff --git a/tests/extmod/ujson_load.py b/tests/extmod/ujson_load.py
index bf484a2074bb7103d2e58667be51067ba25f3e0d..901132a5f88b5023dd1dd7574c12ac958c052034 100644
--- a/tests/extmod/ujson_load.py
+++ b/tests/extmod/ujson_load.py
@@ -2,8 +2,13 @@ try:
     from uio import StringIO
     import ujson as json
 except:
-    from io import StringIO
-    import json
+    try:
+        from io import StringIO
+        import json
+    except ImportError:
+        import sys
+        print("SKIP")
+        sys.exit()
 
 print(json.load(StringIO('null')))
 print(json.load(StringIO('"abc\\u0064e"')))
diff --git a/tests/extmod/ujson_loads.py b/tests/extmod/ujson_loads.py
index 37576e6ae88c5bfee6d4ecee1e3d3783927ea87b..b2e18e3af71d31d75d38bba5e08618fb13098b4f 100644
--- a/tests/extmod/ujson_loads.py
+++ b/tests/extmod/ujson_loads.py
@@ -1,7 +1,12 @@
 try:
     import ujson as json
-except:
-    import json
+except ImportError:
+    try:
+        import json
+    except ImportError:
+        import sys
+        print("SKIP")
+        sys.exit()
 
 def my_print(o):
     if isinstance(o, dict):
diff --git a/tests/extmod/ujson_loads_float.py b/tests/extmod/ujson_loads_float.py
index f5e754608ce0cf125d70ebc00df243385ce1bb63..b20a412ffbbf38cdfc5079930b108118cb10ba2a 100644
--- a/tests/extmod/ujson_loads_float.py
+++ b/tests/extmod/ujson_loads_float.py
@@ -1,7 +1,12 @@
 try:
     import ujson as json
-except:
-    import json
+except ImportError:
+    try:
+        import json
+    except ImportError:
+        import sys
+        print("SKIP")
+        sys.exit()
 
 def my_print(o):
     print('%.3f' % o)
diff --git a/tests/extmod/urandom_basic.py b/tests/extmod/urandom_basic.py
index bf00035bd584840a1af7922c240483d4b4abde0c..885b8517f4b52d442b0b7ddbfbd087a5b91eb9e4 100644
--- a/tests/extmod/urandom_basic.py
+++ b/tests/extmod/urandom_basic.py
@@ -1,7 +1,12 @@
 try:
     import urandom as random
 except ImportError:
-    import random
+    try:
+        import random
+    except ImportError:
+        import sys
+        print("SKIP")
+        sys.exit()
 
 # check getrandbits returns a value within the bit range
 for b in (1, 2, 3, 4, 16, 32):
diff --git a/tests/extmod/urandom_extra.py b/tests/extmod/urandom_extra.py
index 004fb10cc413554fd42844edf3d0bec4c73ff44f..925dd0dbcb8546e63dc91ca56cd388d886d845e9 100644
--- a/tests/extmod/urandom_extra.py
+++ b/tests/extmod/urandom_extra.py
@@ -1,7 +1,12 @@
 try:
     import urandom as random
 except ImportError:
-    import random
+    try:
+        import random
+    except ImportError:
+        import sys
+        print("SKIP")
+        sys.exit()
 
 try:
     random.randint
diff --git a/tests/extmod/ure1.py b/tests/extmod/ure1.py
index 48537c2ea591383f913cb94abc22810fa096654d..b5edeeace3767f1ae2f88a44a9a795b31ad1df75 100644
--- a/tests/extmod/ure1.py
+++ b/tests/extmod/ure1.py
@@ -1,7 +1,12 @@
 try:
     import ure as re
 except ImportError:
-    import re
+    try:
+        import re
+    except ImportError:
+        import sys
+        print("SKIP")
+        sys.exit()
 
 r = re.compile(".+")
 m = r.match("abc")
diff --git a/tests/extmod/ure_debug.py b/tests/extmod/ure_debug.py
index 303e1789c03e021146dfafe445af0ffbb685f080..252df21e3098986953ae4edfa73fb7ac5b3ca59f 100644
--- a/tests/extmod/ure_debug.py
+++ b/tests/extmod/ure_debug.py
@@ -1,3 +1,9 @@
 # test printing debugging info when compiling
-import ure
+try:
+    import ure
+except ImportError:
+    import sys
+    print("SKIP")
+    sys.exit()
+
 ure.compile('^a|b[0-9]\w$', ure.DEBUG)
diff --git a/tests/extmod/ure_error.py b/tests/extmod/ure_error.py
index 1e9f66a9e5b9ed73b0c3e2c6fe040ce2dde9b495..3f16f9158ccba81d0929c5b012da1f78d3db2870 100644
--- a/tests/extmod/ure_error.py
+++ b/tests/extmod/ure_error.py
@@ -2,8 +2,13 @@
 
 try:
     import ure as re
-except:
-    import re
+except ImportError:
+    try:
+        import re
+    except ImportError:
+        import sys
+        print("SKIP")
+        sys.exit()
 
 def test_re(r):
     try:
diff --git a/tests/extmod/ure_group.py b/tests/extmod/ure_group.py
index 8078a0a8559f05d5849364cac191d2e13ca239e2..98aae2a736f11a1528969998b7c67de2b162aaa5 100644
--- a/tests/extmod/ure_group.py
+++ b/tests/extmod/ure_group.py
@@ -2,8 +2,13 @@
 
 try:
     import ure as re
-except:
-    import re
+except ImportError:
+    try:
+        import re
+    except ImportError:
+        import sys
+        print("SKIP")
+        sys.exit()
 
 def print_groups(match):
     print('----')
diff --git a/tests/extmod/ure_namedclass.py b/tests/extmod/ure_namedclass.py
index 25f425ce71396942cf4685c3bdc4b31f0f190b72..e233f17c887c867c9cdfcff0faa1c7ddb8e876a4 100644
--- a/tests/extmod/ure_namedclass.py
+++ b/tests/extmod/ure_namedclass.py
@@ -2,8 +2,13 @@
 
 try:
     import ure as re
-except:
-    import re
+except ImportError:
+    try:
+        import re
+    except ImportError:
+        import sys
+        print("SKIP")
+        sys.exit()
 
 def print_groups(match):
     print('----')
diff --git a/tests/extmod/ure_split.py b/tests/extmod/ure_split.py
index 620fd9052bb1726e475c4d21fe772d1e9e15aa2f..1e411c27c510ca066301beda0f437f9c1903c1e2 100644
--- a/tests/extmod/ure_split.py
+++ b/tests/extmod/ure_split.py
@@ -1,7 +1,12 @@
 try:
     import ure as re
 except ImportError:
-    import re
+    try:
+        import re
+    except ImportError:
+        import sys
+        print("SKIP")
+        sys.exit()
 
 r = re.compile(" ")
 s = r.split("a b c foobar")
diff --git a/tests/extmod/ure_split_empty.py b/tests/extmod/ure_split_empty.py
index 6f31e6dc6c465f338d07feca8391640d4f1a9997..ad6334ebae4eae082c1445af7768be2b1e3be978 100644
--- a/tests/extmod/ure_split_empty.py
+++ b/tests/extmod/ure_split_empty.py
@@ -4,7 +4,12 @@
 # behaviour will change in a future version.  MicroPython just stops
 # splitting as soon as an empty match is found.
 
-import ure as re
+try:
+    import ure as re
+except ImportError:
+    import sys
+    print("SKIP")
+    sys.exit()
 
 r = re.compile(" *")
 s = r.split("a b    c   foobar")
diff --git a/tests/extmod/ure_split_notimpl.py b/tests/extmod/ure_split_notimpl.py
index 724e9d43be72737d36f7475d245e29b77f778c49..eca3ea512eb07a5ed7673a24d2436fcdcf9da758 100644
--- a/tests/extmod/ure_split_notimpl.py
+++ b/tests/extmod/ure_split_notimpl.py
@@ -1,4 +1,9 @@
-import ure as re
+try:
+    import ure as re
+except ImportError:
+    import sys
+    print("SKIP")
+    sys.exit()
 
 r = re.compile('( )')
 try:
diff --git a/tests/extmod/uzlib_decompio.py b/tests/extmod/uzlib_decompio.py
index 75a6df0ca453b1104a4b506259461e97f0298bee..6f07c048c7569edad7eb23305fda81a83918fcfb 100644
--- a/tests/extmod/uzlib_decompio.py
+++ b/tests/extmod/uzlib_decompio.py
@@ -1,8 +1,10 @@
 try:
-    import zlib
-except ImportError:
     import uzlib as zlib
-import uio as io
+    import uio as io
+except ImportError:
+    import sys
+    print("SKIP")
+    sys.exit()
 
 
 # Raw DEFLATE bitstream
diff --git a/tests/extmod/uzlib_decompio_gz.py b/tests/extmod/uzlib_decompio_gz.py
index c7aac04e8efe86658715dfba219e68be8ed02c32..5ab25354cdf6e8e8a6dc5584b37563493b9cc123 100644
--- a/tests/extmod/uzlib_decompio_gz.py
+++ b/tests/extmod/uzlib_decompio_gz.py
@@ -1,8 +1,10 @@
 try:
-    import zlib
-except ImportError:
     import uzlib as zlib
-import uio as io
+    import uio as io
+except ImportError:
+    import sys
+    print("SKIP")
+    sys.exit()
 
 
 # gzip bitstream
diff --git a/tests/extmod/uzlib_decompress.py b/tests/extmod/uzlib_decompress.py
index 6892808cb469a9820a5cc8d68d50e1292bcf1ba7..10121ee7e18e0c9f0f4665920c1cf3d48d99351d 100644
--- a/tests/extmod/uzlib_decompress.py
+++ b/tests/extmod/uzlib_decompress.py
@@ -1,7 +1,12 @@
 try:
     import zlib
 except ImportError:
-    import uzlib as zlib
+    try:
+        import uzlib as zlib
+    except ImportError:
+        import sys
+        print("SKIP")
+        sys.exit()
 
 PATTERNS = [
     # Packed results produced by CPy's zlib.compress()
diff --git a/tests/extmod/vfs_fat_oldproto.py b/tests/extmod/vfs_fat_oldproto.py
index 03ab76e35f999ad281b158e39d95abbe1865e4c8..77d3492125aca18f10b5f8f3e22c4e4611bfef64 100644
--- a/tests/extmod/vfs_fat_oldproto.py
+++ b/tests/extmod/vfs_fat_oldproto.py
@@ -1,9 +1,14 @@
 import sys
-import uerrno
 try:
-    import uos_vfs as uos
+    import uerrno
+    try:
+        import uos_vfs as uos
+    except ImportError:
+        import uos
 except ImportError:
-    import uos
+    print("SKIP")
+    sys.exit()
+
 try:
     uos.VfsFat
 except AttributeError:
diff --git a/tests/extmod/vfs_fat_ramdisk.py b/tests/extmod/vfs_fat_ramdisk.py
index dc4a1c3055c3acdfb0bb9a02ff43cb77694bc59f..81f9418b28ed3626b065a7e2d7b75bdbec290120 100644
--- a/tests/extmod/vfs_fat_ramdisk.py
+++ b/tests/extmod/vfs_fat_ramdisk.py
@@ -1,9 +1,14 @@
 import sys
-import uerrno
 try:
-    import uos_vfs as uos
+    import uerrno
+    try:
+        import uos_vfs as uos
+    except ImportError:
+        import uos
 except ImportError:
-    import uos
+    print("SKIP")
+    sys.exit()
+
 try:
     uos.VfsFat
 except AttributeError: