@@ -29,6 +29,7 @@ func TestFlavorCompatibility(t *testing.T) {
2929 }
3030 windows32 := & os {"windows" , "386" }
3131 windows64 := & os {"windows" , "amd64" }
32+ windowsArm64 := & os {"windows" , "arm64" }
3233 linux32 := & os {"linux" , "386" }
3334 linux64 := & os {"linux" , "amd64" }
3435 linuxArm := & os {"linux" , "arm" }
@@ -43,6 +44,7 @@ func TestFlavorCompatibility(t *testing.T) {
4344 oses := []* os {
4445 windows32 ,
4546 windows64 ,
47+ windowsArm64 ,
4648 linux32 ,
4749 linux64 ,
4850 linuxArm ,
@@ -62,8 +64,9 @@ func TestFlavorCompatibility(t *testing.T) {
6264 ExactMatch []* os
6365 }
6466 tests := []* test {
65- {& Flavor {OS : "i686-mingw32" }, []* os {windows32 , windows64 }, []* os {windows32 }},
66- {& Flavor {OS : "x86_64-mingw32" }, []* os {windows64 }, []* os {windows64 }},
67+ {& Flavor {OS : "i686-mingw32" }, []* os {windows32 , windows64 , windowsArm64 }, []* os {windows32 }},
68+ {& Flavor {OS : "x86_64-mingw32" }, []* os {windows64 , windowsArm64 }, []* os {windows64 }},
69+ {& Flavor {OS : "arm64-mingw32" }, []* os {windowsArm64 }, []* os {windowsArm64 }},
6770 {& Flavor {OS : "i386-apple-darwin11" }, []* os {darwin32 , darwin64 , darwinArm64 }, []* os {darwin32 }},
6871 {& Flavor {OS : "x86_64-apple-darwin" }, []* os {darwin64 , darwinArm64 }, []* os {darwin64 }},
6972 {& Flavor {OS : "arm64-apple-darwin" }, []* os {darwinArm64 }, []* os {darwinArm64 }},
@@ -160,17 +163,44 @@ func TestFlavorPrioritySelection(t *testing.T) {
160163 Flavors : []* Flavor {
161164 {OS : "i686-mingw32" , Resource : & resources.DownloadResource {ArchiveFileName : "1" }},
162165 {OS : "x86_64-mingw32" , Resource : & resources.DownloadResource {ArchiveFileName : "2" }},
166+ {OS : "arm64-mingw32" , Resource : & resources.DownloadResource {ArchiveFileName : "3" }},
163167 },
164168 }).GetFlavourCompatibleWith ("windows" , "amd64" )
165169 require .NotNil (t , res )
166170 require .Equal (t , "2" , res .ArchiveFileName )
167171
168172 res = (& ToolRelease {
169173 Flavors : []* Flavor {
174+ {OS : "i686-mingw32" , Resource : & resources.DownloadResource {ArchiveFileName : "1" }},
170175 {OS : "x86_64-mingw32" , Resource : & resources.DownloadResource {ArchiveFileName : "2" }},
176+ {OS : "arm64-mingw32" , Resource : & resources.DownloadResource {ArchiveFileName : "3" }},
177+ },
178+ }).GetFlavourCompatibleWith ("windows" , "arm64" )
179+ require .NotNil (t , res )
180+ require .Equal (t , "3" , res .ArchiveFileName )
181+
182+ res = (& ToolRelease {
183+ Flavors : []* Flavor {
171184 {OS : "i686-mingw32" , Resource : & resources.DownloadResource {ArchiveFileName : "1" }},
172185 },
173186 }).GetFlavourCompatibleWith ("windows" , "amd64" )
174187 require .NotNil (t , res )
188+ require .Equal (t , "1" , res .ArchiveFileName )
189+
190+ res = (& ToolRelease {
191+ Flavors : []* Flavor {
192+ {OS : "i686-mingw32" , Resource : & resources.DownloadResource {ArchiveFileName : "1" }},
193+ {OS : "x86_64-mingw32" , Resource : & resources.DownloadResource {ArchiveFileName : "2" }},
194+ },
195+ }).GetFlavourCompatibleWith ("windows" , "arm64" )
196+ require .NotNil (t , res )
175197 require .Equal (t , "2" , res .ArchiveFileName )
198+
199+ res = (& ToolRelease {
200+ Flavors : []* Flavor {
201+ {OS : "i686-mingw32" , Resource : & resources.DownloadResource {ArchiveFileName : "1" }},
202+ },
203+ }).GetFlavourCompatibleWith ("windows" , "arm64" )
204+ require .NotNil (t , res )
205+ require .Equal (t , "1" , res .ArchiveFileName )
176206}
0 commit comments