@@ -121,3 +121,37 @@ func TestFQBN(t *testing.T) {
121
121
"properties.Map{\n \" cpu\" : \" atmega\" ,\n \" speed\" : \" 1000\" ,\n \" extra\" : \" core=arduino\" ,\n }" ,
122
122
f .Configs .Dump ())
123
123
}
124
+
125
+ func TestMatch (t * testing.T ) {
126
+ expectedMatches := [][]string {
127
+ {"arduino:avr:uno" , "arduino:avr:uno" },
128
+ {"arduino:avr:uno" , "arduino:avr:uno:opt1=1,opt2=2" },
129
+ {"arduino:avr:uno:opt1=1" , "arduino:avr:uno:opt1=1,opt2=2" },
130
+ {"arduino:avr:uno:opt1=1,opt2=2" , "arduino:avr:uno:opt1=1,opt2=2" },
131
+ {"arduino:avr:uno:opt3=3,opt1=1,opt2=2" , "arduino:avr:uno:opt2=2,opt3=3,opt1=1,opt4=4" },
132
+ }
133
+
134
+ for _ , pair := range expectedMatches {
135
+ a , err := ParseFQBN (pair [0 ])
136
+ require .NoError (t , err )
137
+ b , err := ParseFQBN (pair [1 ])
138
+ require .NoError (t , err )
139
+ require .True (t , b .Match (a ))
140
+ }
141
+
142
+ expectedMismatches := [][]string {
143
+ {"arduino:avr:uno" , "arduino:avr:due" },
144
+ {"arduino:avr:uno" , "arduino:avr:due:opt1=1,opt2=2" },
145
+ {"arduino:avr:uno:opt1=1" , "arduino:avr:uno" },
146
+ {"arduino:avr:uno:opt1=1,opt2=" , "arduino:avr:uno:opt1=1,opt2=3" },
147
+ {"arduino:avr:uno:opt1=1,opt2=2" , "arduino:avr:uno:opt2=2" },
148
+ }
149
+
150
+ for _ , pair := range expectedMismatches {
151
+ a , err := ParseFQBN (pair [0 ])
152
+ require .NoError (t , err )
153
+ b , err := ParseFQBN (pair [1 ])
154
+ require .NoError (t , err )
155
+ require .False (t , b .Match (a ))
156
+ }
157
+ }
0 commit comments