Skip to content

Commit 5a9b7e9

Browse files
committed
add units test for the .set directive
1 parent bb7f3a7 commit 5a9b7e9

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

tests/assemble.py

+15-6
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from esp32_ulp.nocomment import remove_comments
44

55
src = """\
6+
.set const, 123
67
78
start: wait 42
89
ld r0, r1, 0
@@ -16,12 +17,13 @@ def test_parse_line():
1617
a = Assembler()
1718
lines = src.splitlines()
1819
# note: line number = index + 1
19-
assert a.parse_line(lines[0]) == None
20-
assert a.parse_line(lines[1]) == ('start', 'wait', ('42', ))
21-
assert a.parse_line(lines[2]) == (None, 'ld', ('r0', 'r1', '0', ))
22-
assert a.parse_line(lines[3]) == (None, 'st', ('r0', 'r1', '0', ))
23-
assert a.parse_line(lines[4]) == (None, 'halt', ())
24-
assert a.parse_line(lines[5]) == ('end', None, ())
20+
assert a.parse_line(lines[0]) == (None, '.set', ('const', '123', ))
21+
assert a.parse_line(lines[1]) == None
22+
assert a.parse_line(lines[2]) == ('start', 'wait', ('42', ))
23+
assert a.parse_line(lines[3]) == (None, 'ld', ('r0', 'r1', '0', ))
24+
assert a.parse_line(lines[4]) == (None, 'st', ('r0', 'r1', '0', ))
25+
assert a.parse_line(lines[5]) == (None, 'halt', ())
26+
assert a.parse_line(lines[6]) == ('end', None, ())
2527

2628

2729
def test_parse():
@@ -34,8 +36,10 @@ def test_parse():
3436
def test_assemble():
3537
a = Assembler()
3638
a.assemble(src)
39+
assert a.symbols.has_sym('const')
3740
assert a.symbols.has_sym('start')
3841
assert a.symbols.has_sym('end')
42+
assert a.symbols.get_sym('const') == (ABS, None, 123)
3943
assert a.symbols.get_sym('start') == (REL, TEXT, 0)
4044
assert a.symbols.get_sym('end') == (REL, TEXT, 4)
4145
assert len(b''.join(a.sections[TEXT])) == 16 # 4 instructions * 4B
@@ -50,6 +54,7 @@ def test_symbols():
5054
('abs_t4', ABS, TEXT, 4),
5155
('rel_d4', REL, DATA, 4),
5256
('abs_d4', ABS, DATA, 4),
57+
('const', ABS, None, 123),
5358
]:
5459
st.set_sym(*entry)
5560
# PASS 1 ========================================================
@@ -62,11 +67,13 @@ def test_symbols():
6267
assert st.resolve_absolute('abs_d4') == 4
6368
assert st.resolve_absolute('rel_t4') == 4
6469
assert st.resolve_absolute('rel_d4') == 4
70+
assert st.resolve_absolute('const') == 123
6571
st.set_from(TEXT, 8)
6672
assert st.resolve_relative('abs_t4') == -4
6773
assert st.resolve_relative('abs_d4') == -4
6874
assert st.resolve_relative('rel_t4') == -4
6975
assert st.resolve_relative('rel_d4') == -4
76+
assert st.resolve_absolute('const') == 123
7077
# PASS 2 ========================================================
7178
st.set_bases({TEXT: 100, DATA: 200})
7279
st.set_pass(2)
@@ -84,11 +91,13 @@ def test_symbols():
8491
assert st.resolve_absolute('abs_d4') == 4
8592
assert st.resolve_absolute('rel_t4') == 100 + 4
8693
assert st.resolve_absolute('rel_d4') == 200 + 4
94+
assert st.resolve_absolute('const') == 123
8795
st.set_from(TEXT, 8)
8896
assert st.resolve_relative('abs_t4') == 4 - 108
8997
assert st.resolve_relative('abs_d4') == 4 - 108
9098
assert st.resolve_relative('rel_t4') == 104 - 108
9199
assert st.resolve_relative('rel_d4') == 204 - 108
100+
assert st.resolve_absolute('const') == 123
92101

93102

94103
test_parse_line()

0 commit comments

Comments
 (0)