@@ -30,7 +30,7 @@ func TestFQBN(t *testing.T) {
30
30
require .Equal (t , a .BoardID , "uno" )
31
31
require .Zero (t , a .Configs .Size ())
32
32
33
- // Allow empty plaforms or packages
33
+ // Allow empty platforms or packages (aka. vendors + architectures)
34
34
b1 , err := ParseFQBN ("arduino::uno" )
35
35
require .Equal (t , "arduino::uno" , b1 .String ())
36
36
require .NoError (t , err )
@@ -65,10 +65,24 @@ func TestFQBN(t *testing.T) {
65
65
_ , err = ParseFQBN ("arduino:avr" )
66
66
require .Error (t , err )
67
67
68
- // Sort keys in fbqn config
69
- s , err := ParseFQBN ("arduino:avr:uno:d=x,b=x,a=x,e=x,c=x" )
68
+ // Keeps the config keys order
69
+ s1 , err := ParseFQBN ("arduino:avr:uno:d=x,b=x,a=x,e=x,c=x" )
70
70
require .NoError (t , err )
71
- require .Equal (t , "arduino:avr:uno:d=x,b=x,a=x,e=x,c=x" , s .String ())
71
+ require .Equal (t , "arduino:avr:uno:d=x,b=x,a=x,e=x,c=x" , s1 .String ())
72
+ require .Equal (t ,
73
+ "properties.Map{\n \" d\" : \" x\" ,\n \" b\" : \" x\" ,\n \" a\" : \" x\" ,\n \" e\" : \" x\" ,\n \" c\" : \" x\" ,\n }" ,
74
+ s1 .Configs .Dump ())
75
+
76
+ s2 , err := ParseFQBN ("arduino:avr:uno:a=x,b=x,c=x,d=x,e=x" )
77
+ require .NoError (t , err )
78
+ require .Equal (t , "arduino:avr:uno:a=x,b=x,c=x,d=x,e=x" , s2 .String ())
79
+ require .Equal (t ,
80
+ "properties.Map{\n \" a\" : \" x\" ,\n \" b\" : \" x\" ,\n \" c\" : \" x\" ,\n \" d\" : \" x\" ,\n \" e\" : \" x\" ,\n }" ,
81
+ s2 .Configs .Dump ())
82
+
83
+ // The config keys order is insignificant when comparing two FQBNs
84
+ require .True (t , s1 .Match (s2 ))
85
+ require .NotEqual (t , s1 .String (), s2 .String ())
72
86
73
87
// Test configs
74
88
c , err := ParseFQBN ("arduino:avr:uno:cpu=atmega" )
@@ -90,6 +104,8 @@ func TestFQBN(t *testing.T) {
90
104
// Do not allow empty keys or missing values in config
91
105
_ , err = ParseFQBN ("arduino:avr:uno:" )
92
106
require .Error (t , err )
107
+ _ , err = ParseFQBN ("arduino:avr:uno," )
108
+ require .Error (t , err )
93
109
_ , err = ParseFQBN ("arduino:avr:uno:cpu" )
94
110
require .Error (t , err )
95
111
_ , err = ParseFQBN ("arduino:avr:uno:=atmega" )
0 commit comments