@@ -4,19 +4,20 @@ import (
4
4
"fmt"
5
5
"testing"
6
6
7
+ "github.com/arduino/go-paths-helper"
7
8
"github.com/stretchr/testify/require"
8
9
)
9
10
10
11
func TestCreateSourceMaps (t * testing.T ) {
11
12
input := `#include <Arduino.h>
12
- #line 1 "sketch_july2a.ino"
13
- #line 1 "sketch_july2a.ino"
13
+ #line 1 "/home/megabug/Workspace/arduino-language-server/handler/sourcemapper/ sketch_july2a.ino"
14
+ #line 1 "/home/megabug/Workspace/arduino-language-server/handler/sourcemapper/ sketch_july2a.ino"
14
15
15
- #line 2 "sketch_july2a.ino"
16
+ #line 2 "/home/megabug/Workspace/arduino-language-server/handler/sourcemapper/ sketch_july2a.ino"
16
17
void setup();
17
- #line 7 "sketch_july2a.ino"
18
+ #line 7 "/home/megabug/Workspace/arduino-language-server/handler/sourcemapper/ sketch_july2a.ino"
18
19
void loop();
19
- #line 2 "sketch_july2a.ino"
20
+ #line 2 "/home/megabug/Workspace/arduino-language-server/handler/sourcemapper/ sketch_july2a.ino"
20
21
void setup() {
21
22
// put your setup code here, to run once:
22
23
@@ -28,43 +29,44 @@ void loop() {
28
29
}
29
30
`
30
31
sourceMap := CreateInoMapper ([]byte (input ))
32
+ sketchJuly2a := paths .New ("/home/megabug/Workspace/arduino-language-server/handler/sourcemapper/sketch_july2a.ino" ).Canonical ().String ()
31
33
require .EqualValues (t , map [InoLine ]int {
32
- {"sketch_july2a.ino" , 0 }: 3 ,
33
- {"sketch_july2a.ino" , 1 }: 9 ,
34
- {"sketch_july2a.ino" , 2 }: 10 ,
35
- {"sketch_july2a.ino" , 3 }: 11 ,
36
- {"sketch_july2a.ino" , 4 }: 12 ,
37
- {"sketch_july2a.ino" , 5 }: 13 ,
38
- {"sketch_july2a.ino" , 6 }: 14 ,
39
- {"sketch_july2a.ino" , 7 }: 15 ,
40
- {"sketch_july2a.ino" , 8 }: 16 ,
41
- {"sketch_july2a.ino" , 9 }: 17 ,
42
- {"sketch_july2a.ino" , 10 }: 18 ,
34
+ {sketchJuly2a , 0 }: 3 ,
35
+ {sketchJuly2a , 1 }: 9 ,
36
+ {sketchJuly2a , 2 }: 10 ,
37
+ {sketchJuly2a , 3 }: 11 ,
38
+ {sketchJuly2a , 4 }: 12 ,
39
+ {sketchJuly2a , 5 }: 13 ,
40
+ {sketchJuly2a , 6 }: 14 ,
41
+ {sketchJuly2a , 7 }: 15 ,
42
+ {sketchJuly2a , 8 }: 16 ,
43
+ {sketchJuly2a , 9 }: 17 ,
44
+ {sketchJuly2a , 10 }: 18 ,
43
45
}, sourceMap .toCpp )
44
46
require .EqualValues (t , map [int ]InoLine {
45
47
0 : NotIno ,
46
48
1 : NotIno ,
47
49
2 : NotIno ,
48
- 3 : {"sketch_july2a.ino" , 0 },
50
+ 3 : {sketchJuly2a , 0 },
49
51
4 : NotIno ,
50
- 5 : {"sketch_july2a.ino" , 1 }, // setup
52
+ 5 : {sketchJuly2a , 1 }, // setup
51
53
6 : NotIno ,
52
- 7 : {"sketch_july2a.ino" , 6 }, // loop
54
+ 7 : {sketchJuly2a , 6 }, // loop
53
55
8 : NotIno ,
54
- 9 : {"sketch_july2a.ino" , 1 },
55
- 10 : {"sketch_july2a.ino" , 2 },
56
- 11 : {"sketch_july2a.ino" , 3 },
57
- 12 : {"sketch_july2a.ino" , 4 },
58
- 13 : {"sketch_july2a.ino" , 5 },
59
- 14 : {"sketch_july2a.ino" , 6 },
60
- 15 : {"sketch_july2a.ino" , 7 },
61
- 16 : {"sketch_july2a.ino" , 8 },
62
- 17 : {"sketch_july2a.ino" , 9 },
63
- 18 : {"sketch_july2a.ino" , 10 },
56
+ 9 : {sketchJuly2a , 1 },
57
+ 10 : {sketchJuly2a , 2 },
58
+ 11 : {sketchJuly2a , 3 },
59
+ 12 : {sketchJuly2a , 4 },
60
+ 13 : {sketchJuly2a , 5 },
61
+ 14 : {sketchJuly2a , 6 },
62
+ 15 : {sketchJuly2a , 7 },
63
+ 16 : {sketchJuly2a , 8 },
64
+ 17 : {sketchJuly2a , 9 },
65
+ 18 : {sketchJuly2a , 10 },
64
66
}, sourceMap .toIno )
65
67
require .EqualValues (t , map [int ]InoLine {
66
- 5 : {"sketch_july2a.ino" , 1 }, // setup
67
- 7 : {"sketch_july2a.ino" , 6 }, // loop
68
+ 5 : {sketchJuly2a , 1 }, // setup
69
+ 7 : {sketchJuly2a , 6 }, // loop
68
70
}, sourceMap .cppPreprocessed )
69
71
70
72
dumpCppToInoMap (sourceMap .toIno )
@@ -122,88 +124,90 @@ void vino() {
122
124
void secondFunction() {
123
125
124
126
}`
127
+ ProvaSpazio := paths .New ("/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" ).Canonical ().String ()
128
+ SecondTab := paths .New ("/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/SecondTab.ino" ).Canonical ().String ()
125
129
sourceMap := CreateInoMapper ([]byte (input ))
126
130
require .EqualValues (t , sourceMap .toCpp , map [InoLine ]int {
127
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 0 }: 2 ,
128
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 1 }: 3 ,
129
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 2 }: 4 ,
130
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 3 }: 14 ,
131
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 4 }: 15 ,
132
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 5 }: 16 ,
133
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 6 }: 17 ,
134
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 7 }: 18 ,
135
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 8 }: 19 ,
136
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 9 }: 20 ,
137
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 10 }: 21 ,
138
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 11 }: 22 ,
139
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 12 }: 23 ,
140
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 13 }: 24 ,
141
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 14 }: 25 ,
142
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 15 }: 26 ,
143
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 16 }: 27 ,
144
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 17 }: 28 ,
145
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 18 }: 29 ,
146
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 19 }: 30 ,
147
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 20 }: 31 ,
148
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 21 }: 32 ,
149
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 22 }: 33 ,
150
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 23 }: 34 ,
151
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 24 }: 35 ,
152
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/ SecondTab.ino" , 0 }: 37 ,
153
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/ SecondTab.ino" , 1 }: 38 ,
154
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/ SecondTab.ino" , 2 }: 39 ,
155
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/ SecondTab.ino" , 3 }: 40 ,
156
- {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/ SecondTab.ino" , 4 }: 41 ,
131
+ {ProvaSpazio , 0 }: 2 ,
132
+ {ProvaSpazio , 1 }: 3 ,
133
+ {ProvaSpazio , 2 }: 4 ,
134
+ {ProvaSpazio , 3 }: 14 ,
135
+ {ProvaSpazio , 4 }: 15 ,
136
+ {ProvaSpazio , 5 }: 16 ,
137
+ {ProvaSpazio , 6 }: 17 ,
138
+ {ProvaSpazio , 7 }: 18 ,
139
+ {ProvaSpazio , 8 }: 19 ,
140
+ {ProvaSpazio , 9 }: 20 ,
141
+ {ProvaSpazio , 10 }: 21 ,
142
+ {ProvaSpazio , 11 }: 22 ,
143
+ {ProvaSpazio , 12 }: 23 ,
144
+ {ProvaSpazio , 13 }: 24 ,
145
+ {ProvaSpazio , 14 }: 25 ,
146
+ {ProvaSpazio , 15 }: 26 ,
147
+ {ProvaSpazio , 16 }: 27 ,
148
+ {ProvaSpazio , 17 }: 28 ,
149
+ {ProvaSpazio , 18 }: 29 ,
150
+ {ProvaSpazio , 19 }: 30 ,
151
+ {ProvaSpazio , 20 }: 31 ,
152
+ {ProvaSpazio , 21 }: 32 ,
153
+ {ProvaSpazio , 22 }: 33 ,
154
+ {ProvaSpazio , 23 }: 34 ,
155
+ {ProvaSpazio , 24 }: 35 ,
156
+ {SecondTab , 0 }: 37 ,
157
+ {SecondTab , 1 }: 38 ,
158
+ {SecondTab , 2 }: 39 ,
159
+ {SecondTab , 3 }: 40 ,
160
+ {SecondTab , 4 }: 41 ,
157
161
})
158
162
require .EqualValues (t , sourceMap .toIno , map [int ]InoLine {
159
163
0 : NotIno ,
160
164
1 : NotIno ,
161
- 2 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 0 },
162
- 3 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 1 },
163
- 4 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 2 },
165
+ 2 : {ProvaSpazio , 0 },
166
+ 3 : {ProvaSpazio , 1 },
167
+ 4 : {ProvaSpazio , 2 },
164
168
5 : NotIno ,
165
- 6 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 3 }, // setup
169
+ 6 : {ProvaSpazio , 3 }, // setup
166
170
7 : NotIno ,
167
- 8 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 8 }, // loop
171
+ 8 : {ProvaSpazio , 8 }, // loop
168
172
9 : NotIno ,
169
- 10 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 22 }, // vino
173
+ 10 : {ProvaSpazio , 22 }, // vino
170
174
11 : NotIno ,
171
- 12 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/ SecondTab.ino" , 1 }, // secondFunction
175
+ 12 : {SecondTab , 1 }, // secondFunction
172
176
13 : NotIno ,
173
- 14 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 3 },
174
- 15 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 4 },
175
- 16 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 5 },
176
- 17 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 6 },
177
- 18 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 7 },
178
- 19 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 8 },
179
- 20 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 9 },
180
- 21 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 10 },
181
- 22 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 11 },
182
- 23 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 12 },
183
- 24 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 13 },
184
- 25 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 14 },
185
- 26 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 15 },
186
- 27 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 16 },
187
- 28 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 17 },
188
- 29 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 18 },
189
- 30 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 19 },
190
- 31 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 20 },
191
- 32 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 21 },
192
- 33 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 22 },
193
- 34 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 23 },
194
- 35 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 24 },
195
- 36 : {"not-ino" , 0 },
196
- 37 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/ SecondTab.ino" , 0 },
197
- 38 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/ SecondTab.ino" , 1 },
198
- 39 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/ SecondTab.ino" , 2 },
199
- 40 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/ SecondTab.ino" , 3 },
200
- 41 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/ SecondTab.ino" , 4 },
177
+ 14 : {ProvaSpazio , 3 },
178
+ 15 : {ProvaSpazio , 4 },
179
+ 16 : {ProvaSpazio , 5 },
180
+ 17 : {ProvaSpazio , 6 },
181
+ 18 : {ProvaSpazio , 7 },
182
+ 19 : {ProvaSpazio , 8 },
183
+ 20 : {ProvaSpazio , 9 },
184
+ 21 : {ProvaSpazio , 10 },
185
+ 22 : {ProvaSpazio , 11 },
186
+ 23 : {ProvaSpazio , 12 },
187
+ 24 : {ProvaSpazio , 13 },
188
+ 25 : {ProvaSpazio , 14 },
189
+ 26 : {ProvaSpazio , 15 },
190
+ 27 : {ProvaSpazio , 16 },
191
+ 28 : {ProvaSpazio , 17 },
192
+ 29 : {ProvaSpazio , 18 },
193
+ 30 : {ProvaSpazio , 19 },
194
+ 31 : {ProvaSpazio , 20 },
195
+ 32 : {ProvaSpazio , 21 },
196
+ 33 : {ProvaSpazio , 22 },
197
+ 34 : {ProvaSpazio , 23 },
198
+ 35 : {ProvaSpazio , 24 },
199
+ 36 : {"/ not-ino" , 0 },
200
+ 37 : {SecondTab , 0 },
201
+ 38 : {SecondTab , 1 },
202
+ 39 : {SecondTab , 2 },
203
+ 40 : {SecondTab , 3 },
204
+ 41 : {SecondTab , 4 },
201
205
})
202
206
require .EqualValues (t , map [int ]InoLine {
203
- 6 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 3 }, // setup
204
- 8 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 8 }, // loop
205
- 10 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/Prova_Spazio.ino" , 22 }, // vino
206
- 12 : {"/home/megabug/Workspace/sketchbook-cores-beta/Prova_Spazio/ SecondTab.ino" , 1 }, // secondFunction
207
+ 6 : {ProvaSpazio , 3 }, // setup
208
+ 8 : {ProvaSpazio , 8 }, // loop
209
+ 10 : {ProvaSpazio , 22 }, // vino
210
+ 12 : {SecondTab , 1 }, // secondFunction
207
211
}, sourceMap .cppPreprocessed )
208
212
dumpCppToInoMap (sourceMap .toIno )
209
213
dumpInoToCppMap (sourceMap .toCpp )
0 commit comments