diff --git a/tests/basics/builtin_help.py b/tests/basics/builtin_help.py
new file mode 100644
index 0000000000000000000000000000000000000000..902a95175b2063822690f1c61cf2213011ccd558
--- /dev/null
+++ b/tests/basics/builtin_help.py
@@ -0,0 +1,17 @@
+# test builtin help function
+
+try:
+    help
+except NameError:
+    print("SKIP")
+    import sys
+    sys.exit()
+
+help() # no args
+help(help) # help for a function
+help(int) # help for a class
+help(1) # help for an instance
+import micropython
+help(micropython) # help for a module
+
+print('done') # so last bit of output is predictable
diff --git a/tests/basics/builtin_help.py.exp b/tests/basics/builtin_help.py.exp
new file mode 100644
index 0000000000000000000000000000000000000000..ed8a7d74b85418b9438b741d821318f9a73d2cde
--- /dev/null
+++ b/tests/basics/builtin_help.py.exp
@@ -0,0 +1,14 @@
+########
+object <function> is of type function
+object <class 'int'> is of type type
+  from_bytes -- <classmethod>
+  to_bytes -- <function>
+object 1 is of type int
+  from_bytes -- <classmethod>
+  to_bytes -- <function>
+object <module 'micropython'> is of type module
+  __name__ -- micropython
+  const -- <function>
+  opt_level -- <function>
+########
+done
diff --git a/tests/run-tests b/tests/run-tests
index b835047a27415b79a41bb911fe8301d911a20466..6834d59bef13f50ee75674ac01d02c477308e0a4 100755
--- a/tests/run-tests
+++ b/tests/run-tests
@@ -51,7 +51,7 @@ def convert_regex_escapes(line):
 
 
 def run_micropython(pyb, args, test_file):
-    special_tests = ('micropython/meminfo.py', 'basics/bytes_compare3.py', 'thread/thread_exc2.py')
+    special_tests = ('micropython/meminfo.py', 'basics/bytes_compare3.py', 'basics/builtin_help.py', 'thread/thread_exc2.py')
     is_special = False
     if pyb is None:
         # run on PC