@@ -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