diff --git a/tests/pyb/irq.py b/tests/pyb/irq.py
new file mode 100644
index 0000000000000000000000000000000000000000..42d276568ebfa4b2046c0a1b7f7fc473b20cf0ca
--- /dev/null
+++ b/tests/pyb/irq.py
@@ -0,0 +1,22 @@
+import pyb
+
+def test_irq():
+    # test basic disable/enable
+    i1 = pyb.disable_irq()
+    print(i1)
+    pyb.enable_irq() # by default should enable IRQ
+
+    # check that interrupts are enabled by waiting for ticks
+    pyb.delay(10)
+
+    # check nested disable/enable
+    i1 = pyb.disable_irq()
+    i2 = pyb.disable_irq()
+    print(i1, i2)
+    pyb.enable_irq(i2)
+    pyb.enable_irq(i1)
+
+    # check that interrupts are enabled by waiting for ticks
+    pyb.delay(10)
+
+test_irq()
diff --git a/tests/pyb/irq.py.exp b/tests/pyb/irq.py.exp
new file mode 100644
index 0000000000000000000000000000000000000000..aea065f04548a0995931b7b46e11a400e18ec607
--- /dev/null
+++ b/tests/pyb/irq.py.exp
@@ -0,0 +1,2 @@
+True
+True False