Castle: The best Real-Time/Embedded/HighTech language EVER. Attempt 2
Révision | 92840659a115f4cef0fe2f8ccd96bc6585245f29 (tree) |
---|---|
l'heure | 2023-02-09 06:53:33 |
Auteur | Albert Mietus < albert AT mietus DOT nl > |
Commiter | Albert Mietus < albert AT mietus DOT nl > |
(asis) Refactor tests: ref_XX (txt) and fixtures/call to common.py. Some fixtures are now call()s
@@ -0,0 +1,82 @@ | ||
1 | +# (C) Albert Mietus, 2022, 2023. Part of Castle/CCastle project | |
2 | + | |
3 | +import logging; logger = logging.getLogger(__name__) | |
4 | +import pytest | |
5 | + | |
6 | +from castle.writers.CC2Cpy.Component import * # CC_B_ComponentInterface | |
7 | +from castle.writers.CC2Cpy.Protocol import * #CC_EventProtocol | |
8 | + | |
9 | +########## empty ########## | |
10 | +def emptyComp(): | |
11 | + return CC_B_ComponentInterface('empty') | |
12 | + | |
13 | +ref_emptyComp="""\ | |
14 | +struct CC_B_ComponentInterface cc_CI_empty = { | |
15 | + .name = "empty", | |
16 | + .inherit_from = NULL, | |
17 | + .length = 0, | |
18 | + .ports = { | |
19 | + }, | |
20 | +} ; | |
21 | +""" | |
22 | + | |
23 | +ref_emptyClass="""\ | |
24 | +struct CC_B_ComponentClass cc_C_empty = { | |
25 | + .isa = NULL, | |
26 | + .interface = &cc_CI_empty, | |
27 | + .instance_size = sizeof(CC_C_empty), | |
28 | + .methods = cc_B_empty_methods, | |
29 | +}; | |
30 | +""" | |
31 | + | |
32 | +########## demo2Comp ########## | |
33 | +def demo2Comp(): | |
34 | + jap = CC_EventProtocol("JustAProtocol", events=[], based_on=None) | |
35 | + return CC_B_ComponentInterface('demo2Comp', ports =[ | |
36 | + CC_Port(name='no_1', type=None, direction=CC_PortDirection.In), | |
37 | + CC_Port(name='jap2', type=jap)]) | |
38 | + | |
39 | +ref_demo2Comp="""\ | |
40 | +struct CC_B_ComponentInterface cc_CI_demo2Comp = { | |
41 | + .name = "demo2Comp", | |
42 | + .inherit_from = NULL, | |
43 | + .length = 2, | |
44 | + .ports = { | |
45 | + { | |
46 | + .portNo = 0, | |
47 | + .protocol = NULL, | |
48 | + .direction = CC_B_PortDirectionIs_in, | |
49 | + .name = "no_1", | |
50 | + .part_of = &cc_CI_demo2Comp }, | |
51 | + { | |
52 | + .portNo = 1, | |
53 | + .protocol = &cc_P_JustAProtocol, | |
54 | + .direction = CC_B_PortDirectionIs_UNKNOWN, | |
55 | + .name = "jap2", | |
56 | + .part_of = &cc_CI_demo2Comp }, | |
57 | + }, | |
58 | +} ; | |
59 | +""" | |
60 | + | |
61 | +ref_demo2Class="""\ | |
62 | +struct CC_B_ComponentClass cc_C_demo2Comp = { | |
63 | + .isa = NULL, | |
64 | + .interface = &cc_CI_demo2Comp, | |
65 | + .instance_size = sizeof(CC_C_demo2Comp), | |
66 | + .methods = cc_B_demo2Comp_methods, | |
67 | +}; | |
68 | +""" | |
69 | + | |
70 | +########## subComp ########## | |
71 | +def subComp(base): | |
72 | + return CC_B_ComponentInterface('sub', based_on=base) | |
73 | + | |
74 | +ref_subComp="""\ | |
75 | +struct CC_B_ComponentInterface cc_CI_sub = { | |
76 | + .name = "sub", | |
77 | + .inherit_from = &cc_CI_demo2Comp, | |
78 | + .length = 0, | |
79 | + .ports = { | |
80 | + }, | |
81 | +} ; | |
82 | +""" |
@@ -8,9 +8,26 @@ | ||
8 | 8 | |
9 | 9 | from . import common |
10 | 10 | |
11 | -def test_0(): | |
12 | - emptyClass = CC_B_ComponentClass(common.emptyComp()) | |
13 | - assert CCompare(common.ref_emptyClass, emptyClass.render()) | |
11 | +def test_1a_render_empty(): | |
12 | + compClass = CC_B_ComponentClass(common.emptyComp()) | |
13 | + assert CCompare(common.ref_emptyClass, compClass.render()) | |
14 | + | |
15 | +def test_1a_render_demo2(): | |
16 | + compClass = CC_B_ComponentClass(common.demo2Comp()) | |
17 | + assert CCompare(common.ref_demo2Class, compClass.render()) | |
18 | + | |
19 | +def test_2_render_whitespace(): | |
20 | + assert CCompare(common.ref_emptyClass, CC_B_ComponentClass(common.emptyComp()).render()) | |
21 | + assert CCompare(common.ref_emptyClass, CC_B_ComponentClass(common.emptyComp()).render_struct()) | |
22 | + | |
23 | +def test_3a_indent_empty(): | |
24 | + verify_indents(common.ref_emptyComp, common.emptyComp().render) | |
25 | + | |
26 | +def test_3b_indent_demo(): | |
27 | + verify_indents(common.ref_demo2Comp, common.demo2Comp().render) | |
28 | + | |
29 | +def test_3c_indent_sub(): | |
30 | + verify_indents(common.ref_subComp, common.subComp(base=common.demo2Comp()).render) | |
14 | 31 | |
15 | 32 | |
16 | 33 |