@@ -166,3 +166,46 @@ func TestMergeSketchWithBootloaderWhenNoBootloaderAvailable(t *testing.T) {
166166 require .Error (t , err )
167167 require .True (t , os .IsNotExist (err ))
168168}
169+
170+ func TestMergeSketchWithBootloaderPathIsParameterized (t * testing.T ) {
171+ DownloadCoresAndToolsAndLibraries (t )
172+
173+ context := make (map [string ]interface {})
174+
175+ buildPath := SetupBuildPath (t , context )
176+ defer os .RemoveAll (buildPath )
177+
178+ context [constants .CTX_HARDWARE_FOLDERS ] = []string {filepath .Join (".." , "hardware" ), "hardware" , "downloaded_hardware" , "user_hardware" }
179+ context [constants .CTX_TOOLS_FOLDERS ] = []string {"downloaded_tools" }
180+ context [constants .CTX_FQBN ] = "my_avr_platform:avr:mymega:cpu=atmega2560"
181+ context [constants .CTX_BUILT_IN_LIBRARIES_FOLDERS ] = []string {"downloaded_libraries" }
182+ context [constants .CTX_OTHER_LIBRARIES_FOLDERS ] = []string {"libraries" }
183+ context [constants .CTX_SKETCH_LOCATION ] = filepath .Join ("sketch1" , "sketch.ino" )
184+ context [constants .CTX_BUILD_PROPERTIES_RUNTIME_IDE_VERSION ] = "10600"
185+
186+ err := utils .EnsureFolderExists (filepath .Join (buildPath , "sketch" ))
187+ NoError (t , err )
188+
189+ fakeSketchHex := "row 1\n " +
190+ "row 2\n "
191+ err = utils .WriteFile (filepath .Join (buildPath , "sketch" , "sketch.ino.hex" ), fakeSketchHex )
192+ NoError (t , err )
193+
194+ commands := []types.Command {
195+ & builder.SetupHumanLoggerIfMissing {},
196+ & builder.ContainerSetupHardwareToolsLibsSketchAndProps {},
197+ & builder.MergeSketchWithBootloader {},
198+ }
199+
200+ for _ , command := range commands {
201+ err := command .Run (context )
202+ NoError (t , err )
203+ }
204+
205+ bytes , err := ioutil .ReadFile (filepath .Join (buildPath , "sketch" , "sketch.ino.with_bootloader.hex" ))
206+ NoError (t , err )
207+ mergedSketchHex := string (bytes )
208+
209+ require .True (t , strings .HasPrefix (mergedSketchHex , "row 1\n :020000023000CC" ))
210+ require .True (t , strings .HasSuffix (mergedSketchHex , ":040000033000E000E9\n :00000001FF\n " ))
211+ }
0 commit comments