@@ -121,3 +121,37 @@ func TestFQBN(t *testing.T) {
121121 "properties.Map{\n \" cpu\" : \" atmega\" ,\n \" speed\" : \" 1000\" ,\n \" extra\" : \" core=arduino\" ,\n }" ,
122122 f .Configs .Dump ())
123123}
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