Skip to content

Commit f74c176

Browse files
committed
add test module code unitttest
1 parent 1d34ed9 commit f74c176

File tree

2 files changed

+30
-2
lines changed

2 files changed

+30
-2
lines changed

graalpython/com.oracle.graal.python.test/src/tests/test_code.py

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@ def test_firstlineno():
7777

7878

7979
def test_code_attributes():
80+
import sys
81+
8082
code = wrapper().__code__
8183
assert code.co_argcount == 3
8284
assert code.co_kwonlyargcount == 0
@@ -85,7 +87,8 @@ def test_code_attributes():
8587
assert code.co_flags & (1 << 5)
8688
assert not code.co_flags & (1 << 2)
8789
assert not code.co_flags & (1 << 3)
88-
# assert code.co_code
90+
if sys.implementation.name == 'graalpython':
91+
assert code.co_code.decode().strip() == wrapper().__truffle_source__.strip()
8992
# assert code.co_consts
9093
# assert set(code.co_names) == {'set', 'TypeError', 'print'}
9194
assert set(code.co_varnames) == {'arg_l', 'kwarg_case', 'kwarg_other', 'loc_1', 'loc_3', 'inner_func'}
@@ -133,3 +136,28 @@ def test_code_copy():
133136
assert code.co_lnotab == code2.co_lnotab
134137
assert set(code.co_freevars) == set(code2.co_freevars)
135138
assert set(code.co_cellvars) == set(code2.co_cellvars)
139+
140+
141+
def test_module_code():
142+
import sys
143+
m = __import__('package.moduleA')
144+
with open(m.__file__, 'r') as MODULE:
145+
source = MODULE.read()
146+
code = compile(source, m.__file__, 'exec')
147+
assert code.co_argcount == 0
148+
assert code.co_kwonlyargcount == 0
149+
assert code.co_nlocals == 0
150+
# assert code.co_stacksize == 0
151+
# assert code.co_flags == 0
152+
if sys.implementation.name == 'graalpython':
153+
assert code.co_code.decode().strip() == source.strip()
154+
# assert code.co_consts == tuple()
155+
# assert set(code.co_names) == set()
156+
assert set(code.co_varnames) == set()
157+
assert code.co_filename.endswith("__init__.py")
158+
assert code.co_name.startswith("<module")
159+
if sys.implementation.name == 'graalpython':
160+
assert code.co_firstlineno == 1
161+
# assert code.co_lnotab == b''
162+
assert code.co_freevars == tuple()
163+
assert code.co_cellvars == tuple()

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/nodes/PClosureRootNode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,6 @@ public String[] getFreeVars() {
9797
}
9898
return freeVars;
9999
}
100-
return null;
100+
return new String[0];
101101
}
102102
}

0 commit comments

Comments
 (0)