@@ -80,10 +80,6 @@ func TestSetupBuildProperties(t *testing.T) {
8080 require .Equal (t , "\" {compiler.path}{compiler.c.cmd}\" {compiler.c.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.c.extra_flags} {build.extra_flags} {includes} \" {source_file}\" -o \" {object_file}\" " , buildProperties ["recipe.c.o.pattern" ])
8181 require .Equal (t , "{path}/etc/avrdude.conf" , buildProperties ["tools.avrdude.config.path" ])
8282
83- coanProps := props .SubTree (props .SubTree (buildProperties , constants .BUILD_PROPERTIES_TOOLS_KEY ), constants .COAN )
84- require .Equal (t , "{path}/coan" , coanProps ["cmd.path" ])
85- require .Equal (t , "\" {cmd.path}\" source -m -E -P -kb {compiler.c.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.c.extra_flags} {build.extra_flags} \" {source_file}\" " , coanProps [constants .BUILD_PROPERTIES_PATTERN ])
86-
8783 require .Equal (t , Abs (t , "downloaded_hardware/arduino/avr" ), buildProperties [constants .BUILD_PROPERTIES_RUNTIME_PLATFORM_PATH ])
8884 require .Equal (t , Abs (t , "downloaded_hardware/arduino" ), buildProperties [constants .BUILD_PROPERTIES_RUNTIME_HARDWARE_PATH ])
8985 require .Equal (t , "10600" , buildProperties [constants .CTX_BUILD_PROPERTIES_RUNTIME_IDE_VERSION ])
@@ -186,3 +182,64 @@ func TestSetupBuildPropertiesUserHardware(t *testing.T) {
186182 require .Equal (t , Abs (t , filepath .Join ("user_hardware" , "my_avr_platform" , "avr" )), buildProperties [constants .BUILD_PROPERTIES_RUNTIME_PLATFORM_PATH ])
187183 require .Equal (t , Abs (t , filepath .Join ("user_hardware" , "my_avr_platform" )), buildProperties [constants .BUILD_PROPERTIES_RUNTIME_HARDWARE_PATH ])
188184}
185+
186+ func TestSetupBuildPropertiesWithMissingPropsFromParentPlatformTxtFiles (t * testing.T ) {
187+ DownloadCoresAndToolsAndLibraries (t )
188+
189+ context := make (map [string ]interface {})
190+
191+ buildPath := SetupBuildPath (t , context )
192+ defer os .RemoveAll (buildPath )
193+
194+ context [constants .CTX_BUILD_PROPERTIES_RUNTIME_IDE_VERSION ] = "10600"
195+ context [constants .CTX_HARDWARE_FOLDERS ] = []string {filepath .Join (".." , "hardware" ), "hardware" , "downloaded_hardware" , "user_hardware" }
196+ context [constants .CTX_TOOLS_FOLDERS ] = []string {"downloaded_tools" , "./tools_builtin" }
197+ context [constants .CTX_FQBN ] = "my_avr_platform:avr:custom_yun"
198+ context [constants .CTX_SKETCH_LOCATION ] = filepath .Join ("sketch1" , "sketch.ino" )
199+
200+ commands := []types.Command {
201+ & builder.SetupHumanLoggerIfMissing {},
202+ & builder.ContainerSetupHardwareToolsLibsSketchAndProps {},
203+ }
204+
205+ for _ , command := range commands {
206+ err := command .Run (context )
207+ NoError (t , err )
208+ }
209+
210+ buildProperties := context [constants .CTX_BUILD_PROPERTIES ].(map [string ]string )
211+
212+ require .Equal (t , "ARDUINO" , buildProperties [constants .BUILD_PROPERTIES_SOFTWARE ])
213+
214+ require .Equal (t , "custom_yun" , buildProperties [constants .ID ])
215+ require .Equal (t , "Arduino Yún" , buildProperties ["name" ])
216+ require .Equal (t , "0x2341" , buildProperties ["vid.0" ])
217+ require .Equal (t , "\" {compiler.path}{compiler.c.cmd}\" {compiler.c.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.c.extra_flags} {build.extra_flags} {includes} \" {source_file}\" -o \" {object_file}\" " , buildProperties ["recipe.c.o.pattern" ])
218+ require .Equal (t , "{path}/etc/avrdude.conf" , buildProperties ["tools.avrdude.config.path" ])
219+
220+ coanProps := props .SubTree (props .SubTree (buildProperties , constants .BUILD_PROPERTIES_TOOLS_KEY ), constants .COAN )
221+ require .Equal (t , "{path}/coan" , coanProps ["cmd.path" ])
222+ require .Equal (t , "\" {cmd.path}\" source -m -E -P -kb {compiler.c.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.c.extra_flags} {build.extra_flags} \" {source_file}\" " , coanProps [constants .BUILD_PROPERTIES_PATTERN ])
223+
224+ require .Equal (t , Abs (t , "user_hardware/my_avr_platform/avr" ), buildProperties [constants .BUILD_PROPERTIES_RUNTIME_PLATFORM_PATH ])
225+ require .Equal (t , Abs (t , "user_hardware/my_avr_platform" ), buildProperties [constants .BUILD_PROPERTIES_RUNTIME_HARDWARE_PATH ])
226+ require .Equal (t , "10600" , buildProperties [constants .CTX_BUILD_PROPERTIES_RUNTIME_IDE_VERSION ])
227+ require .NotEmpty (t , buildProperties [constants .BUILD_PROPERTIES_RUNTIME_OS ])
228+
229+ require .Equal (t , Abs (t , "./downloaded_tools/arm-none-eabi-gcc/4.8.3-2014q1" ), buildProperties ["runtime.tools.arm-none-eabi-gcc.path" ])
230+ require .Equal (t , Abs (t , "./downloaded_tools/arm-none-eabi-gcc/4.8.3-2014q1" ), buildProperties ["runtime.tools.arm-none-eabi-gcc-4.8.3-2014q1.path" ])
231+ require .Equal (t , Abs (t , "./downloaded_tools/bossac/1.3a-arduino" ), buildProperties ["runtime.tools.bossac-1.3a-arduino.path" ])
232+ require .Equal (t , Abs (t , "./downloaded_tools/bossac/1.5-arduino" ), buildProperties ["runtime.tools.bossac-1.5-arduino.path" ])
233+ require .True (t , buildProperties ["runtime.tools.bossac.path" ] == Abs (t , "./downloaded_tools/bossac/1.3a-arduino" ) || buildProperties ["runtime.tools.bossac.path" ] == Abs (t , "./downloaded_tools/bossac/1.5-arduino" ))
234+ require .Equal (t , Abs (t , "./downloaded_tools/avrdude/6.0.1-arduino5" ), buildProperties ["runtime.tools.avrdude.path" ])
235+ require .Equal (t , Abs (t , "./downloaded_tools/avrdude/6.0.1-arduino5" ), buildProperties ["runtime.tools.avrdude-6.0.1-arduino5.path" ])
236+ require .Equal (t , Abs (t , "./downloaded_tools/avr-gcc/4.8.1-arduino5" ), buildProperties ["runtime.tools.avr-gcc.path" ])
237+ require .Equal (t , Abs (t , "./downloaded_tools/avr-gcc/4.8.1-arduino5" ), buildProperties ["runtime.tools.avr-gcc-4.8.1-arduino5.path" ])
238+
239+ require .Equal (t , Abs (t , filepath .Join ("sketch1" , "sketch.ino" )), buildProperties [constants .BUILD_PROPERTIES_SOURCE_PATH ])
240+
241+ require .True (t , utils .MapStringStringHas (buildProperties , constants .BUILD_PROPERTIES_EXTRA_TIME_UTC ))
242+ require .True (t , utils .MapStringStringHas (buildProperties , constants .BUILD_PROPERTIES_EXTRA_TIME_LOCAL ))
243+ require .True (t , utils .MapStringStringHas (buildProperties , constants .BUILD_PROPERTIES_EXTRA_TIME_ZONE ))
244+ require .True (t , utils .MapStringStringHas (buildProperties , constants .BUILD_PROPERTIES_EXTRA_TIME_DST ))
245+ }
0 commit comments