diff --git a/tests/basics/op_precedence.py b/tests/basics/op_precedence.py
index 519a2a1137dfad072fd7916abaaa2e17801e4621..7d8302ba4dec2f0e545ab9b1da520d7d290216bd 100644
--- a/tests/basics/op_precedence.py
+++ b/tests/basics/op_precedence.py
@@ -37,7 +37,7 @@ print(2 + 2 * 2)
 # BAD: (-2)**2 = 4
 print(-2**2)
 # OK: 2**(-1) = 0.5
-print(2**-1)
+print(2**-0)
 
 # (expr...)
 print((2 + 2) * 2)
diff --git a/tests/extmod/urandom_extra.py b/tests/extmod/urandom_extra.py
index f5a34e1687fe1d64c4cb92cf6b13678177e4f628..0cfd9280b59b9ad19e58e920e7d068bd005a8e25 100644
--- a/tests/extmod/urandom_extra.py
+++ b/tests/extmod/urandom_extra.py
@@ -67,13 +67,3 @@ try:
     random.choice([])
 except IndexError:
     print('IndexError')
-
-print('random')
-for i in range(50):
-    assert 0 <= random.random() < 1
-
-print('uniform')
-for i in range(50):
-    assert 0 <= random.uniform(0, 4) <= 4
-    assert 2 <= random.uniform(2, 6) <= 6
-    assert -2 <= random.uniform(-2, 2) <= 2
diff --git a/tests/extmod/urandom_extra_float.py b/tests/extmod/urandom_extra_float.py
new file mode 100644
index 0000000000000000000000000000000000000000..f665fd18adf61fccaa6a23e166bcc770cfce105a
--- /dev/null
+++ b/tests/extmod/urandom_extra_float.py
@@ -0,0 +1,24 @@
+try:
+    import urandom as random
+except ImportError:
+    try:
+        import random
+    except ImportError:
+        print("SKIP")
+        raise SystemExit
+
+try:
+    random.randint
+except AttributeError:
+    print('SKIP')
+    raise SystemExit
+
+print('random')
+for i in range(50):
+    assert 0 <= random.random() < 1
+
+print('uniform')
+for i in range(50):
+    assert 0 <= random.uniform(0, 4) <= 4
+    assert 2 <= random.uniform(2, 6) <= 6
+    assert -2 <= random.uniform(-2, 2) <= 2
diff --git a/tests/misc/print_exception.py b/tests/misc/print_exception.py
index f120fe1e18dbc5173808fe863de31180c384c6b9..f3316240453cde7c78ff2181969f810b99d43674 100644
--- a/tests/misc/print_exception.py
+++ b/tests/misc/print_exception.py
@@ -31,7 +31,7 @@ def print_exc(e):
 
 # basic exception message
 try:
-    1/0
+    raise Exception('msg')
 except Exception as e:
     print('caught')
     print_exc(e)
@@ -40,7 +40,7 @@ except Exception as e:
 def f():
     g()
 def g():
-    2/0
+    raise Exception('fail')
 try:
     f()
 except Exception as e:
diff --git a/tests/run-tests b/tests/run-tests
index dd88ac0afb77255afbe8f9813dd674c7bc37f2f7..0a70963d771210b62efa0ec40695d29e0af6b6c2 100755
--- a/tests/run-tests
+++ b/tests/run-tests
@@ -277,8 +277,12 @@ def run_tests(pyb, tests, args, base_path="."):
         skip_tests.add('thread/stress_recurse.py') # has reliability issues
 
     if upy_float_precision == 0:
+        skip_tests.add('extmod/uctypes_le_float.py')
+        skip_tests.add('extmod/uctypes_native_float.py')
+        skip_tests.add('extmod/uctypes_sizeof_float.py')
         skip_tests.add('extmod/ujson_dumps_float.py')
         skip_tests.add('extmod/ujson_loads_float.py')
+        skip_tests.add('extmod/urandom_extra_float.py')
         skip_tests.add('misc/rge_sm.py')
     if upy_float_precision < 32:
         skip_tests.add('float/float2int_intbig.py') # requires fp32, there's float2int_fp30_intbig.py instead