@@ -166,3 +166,46 @@ func TestMergeSketchWithBootloaderWhenNoBootloaderAvailable(t *testing.T) {
166
166
require .Error (t , err )
167
167
require .True (t , os .IsNotExist (err ))
168
168
}
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