From f2d732f4596064b3257abe571dc14ab61e02dec9 Mon Sep 17 00:00:00 2001
From: Paul Sokolovsky <pfalcon@users.sourceforge.net>
Date: Wed, 15 Feb 2017 01:56:22 +0300
Subject: [PATCH] tests/extmod: Make tests skippable.

---
 tests/extmod/machine1.py                       |  3 ++-
 tests/extmod/ubinascii_a2b_base64.py           |  9 +++++++--
 tests/extmod/ubinascii_b2a_base64.py           |  9 +++++++--
 tests/extmod/ubinascii_crc32.py                | 10 ++++++++--
 tests/extmod/ubinascii_hexlify.py              |  9 +++++++--
 tests/extmod/ubinascii_micropython.py          |  9 +++++++--
 tests/extmod/ubinascii_unhexlify.py            |  9 +++++++--
 tests/extmod/uctypes_array_assign_le.py        |  7 ++++++-
 tests/extmod/uctypes_array_assign_native_le.py |  6 +++++-
 tests/extmod/uctypes_bytearray.py              |  7 ++++++-
 tests/extmod/uctypes_le.py                     |  7 ++++++-
 tests/extmod/uctypes_le_float.py               |  7 ++++++-
 tests/extmod/uctypes_native_float.py           |  7 ++++++-
 tests/extmod/uctypes_native_le.py              |  6 +++++-
 tests/extmod/uctypes_print.py                  |  8 ++++++--
 tests/extmod/uctypes_ptr_le.py                 |  6 +++++-
 tests/extmod/uctypes_ptr_native_le.py          |  6 +++++-
 tests/extmod/uctypes_sizeof.py                 |  7 ++++++-
 tests/extmod/uctypes_sizeof_native.py          |  7 ++++++-
 tests/extmod/uheapq1.py                        |  7 ++++++-
 tests/extmod/ujson_dumps.py                    |  7 ++++++-
 tests/extmod/ujson_dumps_extra.py              |  7 ++++++-
 tests/extmod/ujson_dumps_float.py              |  7 ++++++-
 tests/extmod/ujson_load.py                     |  9 +++++++--
 tests/extmod/ujson_loads.py                    |  9 +++++++--
 tests/extmod/ujson_loads_float.py              |  9 +++++++--
 tests/extmod/urandom_basic.py                  |  7 ++++++-
 tests/extmod/urandom_extra.py                  |  7 ++++++-
 tests/extmod/ure1.py                           |  7 ++++++-
 tests/extmod/ure_debug.py                      |  8 +++++++-
 tests/extmod/ure_error.py                      |  9 +++++++--
 tests/extmod/ure_group.py                      |  9 +++++++--
 tests/extmod/ure_namedclass.py                 |  9 +++++++--
 tests/extmod/ure_split.py                      |  7 ++++++-
 tests/extmod/ure_split_empty.py                |  7 ++++++-
 tests/extmod/ure_split_notimpl.py              |  7 ++++++-
 tests/extmod/uzlib_decompio.py                 |  8 +++++---
 tests/extmod/uzlib_decompio_gz.py              |  8 +++++---
 tests/extmod/uzlib_decompress.py               |  7 ++++++-
 tests/extmod/vfs_fat_oldproto.py               | 11 ++++++++---
 tests/extmod/vfs_fat_ramdisk.py                | 11 ++++++++---
 41 files changed, 254 insertions(+), 62 deletions(-)

diff --git a/tests/extmod/machine1.py b/tests/extmod/machine1.py
index 433a18037..e0c561168 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 97c451950..58eb0b50b 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 fdcaf32dd..1c0c30311 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 2c4017751..b82c44d6b 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 14c37cb4b..5d70bda96 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 d68da3205..96f566bd1 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 99c2c0208..e669789ba 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 18d63f8bf..bae467d09 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 632c4d252..474b7e0f2 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 7294b7ea4..bf7845ab2 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 5ae410b01..829beda58 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 c85b75f36..a61305ba8 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 89aac8bf3..80cb54383 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 ef0f9f5e9..5900224d4 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 71981ce7e..76a009dc7 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 d0216dfb8..e8a6243ce 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 6f011c3c2..9b016c04d 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 fcfd8ecd7..266cd0694 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 f830a1f85..f676c8c6d 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 e71f817ef..4b0e5de57 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 c0ee60d73..4a02f5170 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 0e593c3e9..a52e8224c 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 f6ba5f113..d949ea6dd 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 bf484a207..901132a5f 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 37576e6ae..b2e18e3af 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 f5e754608..b20a412ff 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 bf00035bd..885b8517f 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 004fb10cc..925dd0dbc 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 48537c2ea..b5edeeace 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 303e1789c..252df21e3 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 1e9f66a9e..3f16f9158 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 8078a0a85..98aae2a73 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 25f425ce7..e233f17c8 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 620fd9052..1e411c27c 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 6f31e6dc6..ad6334eba 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 724e9d43b..eca3ea512 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 75a6df0ca..6f07c048c 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 c7aac04e8..5ab25354c 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 6892808cb..10121ee7e 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 03ab76e35..77d349212 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 dc4a1c305..81f9418b2 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:
-- 
GitLab