summaryrefslogtreecommitdiffstatshomepage
path: root/tests/cmdline/cmd_showbc.py
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2015-03-14 14:06:20 +0000
committerDamien George <damien.p.george@gmail.com>2015-03-14 14:06:20 +0000
commit703c00968178cdfd18ef094fda4e99330bbf9cac (patch)
treee1b023c24b50a9df6a284f8d5b561ffc73c0eb9b /tests/cmdline/cmd_showbc.py
parent42e0c593084784cb0b630d99b8361bc88abadb78 (diff)
downloadmicropython-703c00968178cdfd18ef094fda4e99330bbf9cac.tar.gz
micropython-703c00968178cdfd18ef094fda4e99330bbf9cac.zip
tests: Add cmdline test to test showbc code.
Diffstat (limited to 'tests/cmdline/cmd_showbc.py')
-rw-r--r--tests/cmdline/cmd_showbc.py135
1 files changed, 135 insertions, 0 deletions
diff --git a/tests/cmdline/cmd_showbc.py b/tests/cmdline/cmd_showbc.py
new file mode 100644
index 0000000000..e86c002544
--- /dev/null
+++ b/tests/cmdline/cmd_showbc.py
@@ -0,0 +1,135 @@
+# cmdline: -v -v
+# test printing of all bytecodes
+
+def f():
+ # constants
+ a = None + False + True + ...
+ a = 0
+ a = 1000
+ a = -1000
+
+ # constructing data
+ a = 1
+ b = (1, 2)
+ c = [1, 2]
+ d = {1, 2}
+ e = {}
+ f = {1:2}
+ g = 'a'
+ h = b'a'
+
+ # unary/binary ops
+ i = 1
+ j = 2
+ k = a + b
+ l = -a
+ m = not a
+ m = a == b == c
+ m = not (a == b and b == c)
+
+ # attributes
+ n = b.c
+ b.c = n
+
+ # subscript
+ p = b[0]
+ b[0] = p
+
+ # slice
+ a = b[::]
+
+ # sequenc unpacking
+ a, b = c
+
+ # tuple swapping
+ a, b = b, a
+ a, b, c = c, b, a
+
+ # del fast
+ del a
+
+ # globals
+ global gl
+ gl = a
+ del gl
+
+ # comprehensions
+ a = (b for c in d if e)
+ a = [b for c in d if e]
+ a = {b:b for c in d if e}
+
+ # function calls
+ a()
+ a(1)
+ a(b=1)
+ a(*b)
+
+ # method calls
+ a.b()
+ a.b(1)
+ a.b(c=1)
+ a.b(*c)
+
+ # jumps
+ if a:
+ x
+ else:
+ y
+ while a:
+ b
+ while not a:
+ b
+
+ # for loop
+ for a in b:
+ c
+
+ # exceptions
+ try:
+ while a:
+ break
+ except:
+ b
+ finally:
+ c
+
+ # with
+ with a:
+ b
+
+ # closed over variables
+ x = 1
+ def closure():
+ a = x + 1
+ x = 1
+ del x
+
+ # import
+ import a
+ from a import b
+ from a import *
+
+ # raise
+ raise
+ raise 1
+
+ # return
+ return
+ return 1
+
+# functions with default args
+def f(a=1):
+ pass
+
+ def f(b=2):
+ return b + a
+
+# function which yields
+def f():
+ yield
+ yield 1
+ yield from 1
+
+# class
+class Class:
+ pass