blob: 3a123e79ec573866c96bca5c0a102fef91818a23 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
Some work is needed to include these into the automated test suite.
For now, run them manually according to these instructions:
Compile OpenSCAD in debug mode. This will give console output related to module caching, e.g.:
/path/to/used.scad: 0x103612f70
Module cache size: 1 modules
Test1: Basic cache
------
o Open use.scad
o Compile twice (F5) - check that module reference is the same
Test2: Dependency tracking of USE
------
o Open use.scad
o Compile (F5)
o touch used.scad
o Compile (F5) - check that the module reference changed
Test3: MCAD
------
o Open use-mcad.scad
o Compile (F5)
o Check that you get a rounded box
Test5: Overload USEd module
------
o Open moduleoverload.scad
o Compile (F5)
o Verify that you get a sphere rather than a cylinder
Test6: Recursive USE
------
o Open recursivemain.scad
o Compile (F5)
o Verify that OpenSCAD won't hang or crash
Test7: Circular USE
------
o Open circularmain.scad
o Compile (F5)
o Verify that OpenSCAD won't hang or crash
Test8: Dependency tracking of common file USEd by multiple modules
------
o Open multiplemain.scad
o Compile (F5) - verify that you get a sphere and a cube of approximately the same size
o Edit multipleB.scad:
- cube(1.5*F(), center=true);
+ cube(2.5*F(), center=true);
o Reload and Compile (F4) - verify that the cube got larger
Test9: Dependency tracking of file included from module
------
o Open includefrommodule.scad
o Compile (F5) - Verify that you get a circular disc
o Edit radius.scad: Change RADIUS
o Compile (F5) - Verify that the disc changed size
Test10: Circular include
------
o Open circularincludemain.scad
o Compile (F5)
o Verify that OpenSCAD won't hang or crash
Test11: Missing include file appears
------
o rm missing.scad
o Open includemissing.scad
o Compile (F5)
o Verify that you get: WARNING: Can't open include file 'missing.scad'.
o echo "module missing() { sphere(10); }" > missing.scad
o Reload and Compile (F4) - verify that the sphere appeared
o rm missing.scad
o Reload and Compile (F4) - verify that the sphere is still there
o echo "module missing() { sphere(20); }" > missing.scad
o Reload and Compile (F4) - verify that the sphere increased in size
Test12: Missing include file in subpath appears
------
o rm subdir/missingsub.scad
o Open includemissingsub.scad
o Compile (F5)
o Verify that you get: WARNING: Can't open include file 'subdir/missingsub.scad'.
o echo "module missingsub() { sphere(10); }" > subdir/missingsub.scad
o Reload and Compile (F4) - verify that the sphere appeared
o rm subdir/missingsub.scad
o Reload and Compile (F4) - verify that the sphere is still there
o echo "module missingsub() { sphere(20); }" > subdir/missingsub.scad
o Reload and Compile (F4) - verify that the sphere increased in size
Test13: Missing library file appears
-------
o rm missing.scad
o Open usemissing.scad
o Compile (F5)
o Verify that you get: WARNING: Can't open library file 'missing.scad'.
o echo "module missing() { sphere(10); }" > missing.scad
o Reload and Compile (F4) - verify that the sphere appeared
o rm missing.scad
o Reload and Compile (F4) - verify that the sphere is still there
o echo "module missing() { sphere(20); }" > missing.scad
o Reload and Compile (F4) - verify that the sphere increased in size
Test14: Automatic reload of cascading changes
-------
o ./cascade.sh
o Open cascadetest.scad
o Turn on Automatic Reload and Compile
o Verify that the 4 objects render correctly
o rm cascadetest.scad
o Verify that no rerendering was triggered (the 4 objects are still there)
o rm cascade*.scad
o Verify that no rerendering was triggered (the 4 objects are still there)
o ./cascade2.sh
o Verify that everything reloads at once without flickering
Test 15: Correct handling of compile errors in auto-reloaded modules
--------
o Turn on Automatic Reload and Compile
o Open mainusingerror.scad
o Verify that you get:
- Compiling library '.../error.scad'.
- Parser error in line 3: syntax error
- WARNING: Failed to compile library '.../error.scad'.
- Main file should keep compiling
o Verify that the above doesn't repeat
Test 16: Dependency tracking of underlying dependencies
--------
o Turn on Automatic Reload and Compile
o Open mainsubsub.scad
o Verify that you see a red cylinder
o edit subdit/subsub.scad: Change color
o Verify that color changes
|