func TestLoadTools(t *testing.T) { DownloadCoresAndToolsAndLibraries(t) context := make(map[string]interface{}) context[constants.CTX_TOOLS_FOLDERS] = []string{"downloaded_tools", "tools_builtin"} loader := builder.ToolsLoader{} err := loader.Run(context) NoError(t, err) tools := context[constants.CTX_TOOLS].([]*types.Tool) require.Equal(t, 7, len(tools)) sort.Sort(ByToolIDAndVersion(tools)) require.Equal(t, "arm-none-eabi-gcc", tools[0].Name) require.Equal(t, "4.8.3-2014q1", tools[0].Version) require.Equal(t, Abs(t, "./downloaded_tools/arm-none-eabi-gcc/4.8.3-2014q1"), tools[0].Folder) require.Equal(t, "avr-gcc", tools[1].Name) require.Equal(t, "4.8.1-arduino5", tools[1].Version) require.Equal(t, Abs(t, "./downloaded_tools/avr-gcc/4.8.1-arduino5"), tools[1].Folder) require.Equal(t, "avrdude", tools[2].Name) require.Equal(t, "6.0.1-arduino5", tools[2].Version) require.Equal(t, Abs(t, "./downloaded_tools/avrdude/6.0.1-arduino5"), tools[2].Folder) require.Equal(t, "bossac", tools[3].Name) require.Equal(t, "1.3a-arduino", tools[3].Version) require.Equal(t, Abs(t, "./downloaded_tools/bossac/1.3a-arduino"), tools[3].Folder) require.Equal(t, "bossac", tools[4].Name) require.Equal(t, "1.5-arduino", tools[4].Version) require.Equal(t, Abs(t, "./downloaded_tools/bossac/1.5-arduino"), tools[4].Folder) }
func TestLoadToolsWithBoardManagerFolderStructure(t *testing.T) { DownloadCoresAndToolsAndLibraries(t) ctx := &types.Context{ ToolsFolders: []string{"downloaded_board_manager_stuff"}, } loader := builder.ToolsLoader{} err := loader.Run(ctx) NoError(t, err) tools := ctx.Tools require.Equal(t, 3, len(tools)) sort.Sort(ByToolIDAndVersion(tools)) idx := 0 require.Equal(t, "CMSIS", tools[idx].Name) require.Equal(t, "4.0.0-atmel", tools[idx].Version) require.Equal(t, Abs(t, "./downloaded_board_manager_stuff/arduino/tools/CMSIS/4.0.0-atmel"), tools[idx].Folder) idx++ require.Equal(t, "arm-none-eabi-gcc", tools[idx].Name) require.Equal(t, "4.8.3-2014q1", tools[idx].Version) require.Equal(t, Abs(t, "./downloaded_board_manager_stuff/RFduino/tools/arm-none-eabi-gcc/4.8.3-2014q1"), tools[idx].Folder) idx++ require.Equal(t, "openocd", tools[idx].Name) require.Equal(t, "0.9.0-arduino", tools[idx].Version) require.Equal(t, Abs(t, "./downloaded_board_manager_stuff/arduino/tools/openocd/0.9.0-arduino"), tools[idx].Folder) }
func TestLoadLotsOfTools(t *testing.T) { DownloadCoresAndToolsAndLibraries(t) ctx := &types.Context{ ToolsFolders: []string{"downloaded_tools", "tools_builtin", "downloaded_board_manager_stuff"}, } loader := builder.ToolsLoader{} err := loader.Run(ctx) NoError(t, err) tools := ctx.Tools require.Equal(t, 8, len(tools)) sort.Sort(ByToolIDAndVersion(tools)) idx := 0 require.Equal(t, "CMSIS", tools[idx].Name) require.Equal(t, "4.0.0-atmel", tools[idx].Version) require.Equal(t, Abs(t, "./downloaded_board_manager_stuff/arduino/tools/CMSIS/4.0.0-atmel"), tools[idx].Folder) idx++ require.Equal(t, "arm-none-eabi-gcc", tools[idx].Name) require.Equal(t, "4.8.3-2014q1", tools[idx].Version) require.Equal(t, Abs(t, "./downloaded_tools/arm-none-eabi-gcc/4.8.3-2014q1"), tools[idx].Folder) idx++ require.Equal(t, "avr-gcc", tools[idx].Name) require.Equal(t, "4.8.1-arduino5", tools[idx].Version) require.Equal(t, Abs(t, "./downloaded_tools/avr-gcc/4.8.1-arduino5"), tools[idx].Folder) idx++ require.Equal(t, "avrdude", tools[idx].Name) require.Equal(t, "6.0.1-arduino5", tools[idx].Version) require.Equal(t, Abs(t, "./downloaded_tools/avrdude/6.0.1-arduino5"), tools[idx].Folder) idx++ require.Equal(t, "bossac", tools[idx].Name) require.Equal(t, "1.5-arduino", tools[idx].Version) require.Equal(t, Abs(t, "./downloaded_tools/bossac/1.5-arduino"), tools[idx].Folder) idx++ require.Equal(t, "bossac", tools[idx].Name) require.Equal(t, "1.6.1-arduino", tools[idx].Version) require.Equal(t, Abs(t, "./downloaded_tools/bossac/1.6.1-arduino"), tools[idx].Folder) idx++ require.Equal(t, "ctags", tools[idx].Name) require.Equal(t, "5.8-arduino11", tools[idx].Version) require.Equal(t, Abs(t, "./downloaded_tools/ctags/5.8-arduino11"), tools[idx].Folder) idx++ require.Equal(t, "openocd", tools[idx].Name) require.Equal(t, "0.9.0-arduino", tools[idx].Version) require.Equal(t, Abs(t, "./downloaded_board_manager_stuff/arduino/tools/openocd/0.9.0-arduino"), tools[idx].Folder) }
func TestLoadLotsOfTools(t *testing.T) { DownloadCoresAndToolsAndLibraries(t) context := make(map[string]interface{}) context[constants.CTX_TOOLS_FOLDERS] = []string{"downloaded_tools", "tools_builtin", "downloaded_board_manager_stuff"} loader := builder.ToolsLoader{} err := loader.Run(context) NoError(t, err) tools := context[constants.CTX_TOOLS].([]*types.Tool) require.Equal(t, 8, len(tools)) require.Equal(t, "arm-none-eabi-gcc", tools[0].Name) require.Equal(t, "4.8.3-2014q1", tools[0].Version) require.Equal(t, "openocd", tools[7].Name) require.Equal(t, "0.9.0-arduino", tools[7].Version) require.Equal(t, Abs(t, "./downloaded_board_manager_stuff/arduino/tools/openocd/0.9.0-arduino"), tools[7].Folder) }
func TestLoadLotsOfTools(t *testing.T) { DownloadCoresAndToolsAndLibraries(t) ctx := &types.Context{ ToolsFolders: []string{"downloaded_tools", "tools_builtin", "downloaded_board_manager_stuff"}, } loader := builder.ToolsLoader{} err := loader.Run(ctx) NoError(t, err) tools := ctx.Tools require.Equal(t, 9, len(tools)) require.Equal(t, "arm-none-eabi-gcc", tools[0].Name) require.Equal(t, "4.8.3-2014q1", tools[0].Version) require.Equal(t, "CMSIS", tools[7].Name) require.Equal(t, "openocd", tools[8].Name) require.Equal(t, "0.9.0-arduino", tools[8].Version) require.Equal(t, Abs(t, "./downloaded_board_manager_stuff/arduino/tools/openocd/0.9.0-arduino"), tools[8].Folder) }
func TestLoadToolsWithBoardManagerFolderStructure(t *testing.T) { DownloadCoresAndToolsAndLibraries(t) context := make(map[string]interface{}) context[constants.CTX_TOOLS_FOLDERS] = []string{"downloaded_board_manager_stuff"} loader := builder.ToolsLoader{} err := loader.Run(context) NoError(t, err) tools := context[constants.CTX_TOOLS].([]*types.Tool) require.Equal(t, 2, len(tools)) sort.Sort(ByToolIDAndVersion(tools)) require.Equal(t, "arm-none-eabi-gcc", tools[0].Name) require.Equal(t, "4.8.3-2014q1", tools[0].Version) require.Equal(t, Abs(t, "./downloaded_board_manager_stuff/RFduino/tools/arm-none-eabi-gcc/4.8.3-2014q1"), tools[0].Folder) require.Equal(t, "openocd", tools[1].Name) require.Equal(t, "0.9.0-arduino", tools[1].Version) require.Equal(t, Abs(t, "./downloaded_board_manager_stuff/arduino/tools/openocd/0.9.0-arduino"), tools[1].Folder) }
func TestLoadTools(t *testing.T) { DownloadCoresAndToolsAndLibraries(t) ctx := &types.Context{ ToolsFolders: []string{"downloaded_tools", "tools_builtin"}, } loader := builder.ToolsLoader{} err := loader.Run(ctx) NoError(t, err) tools := ctx.Tools require.Equal(t, 7, len(tools)) sort.Sort(ByToolIDAndVersion(tools)) idx := 0 require.Equal(t, "arm-none-eabi-gcc", tools[idx].Name) require.Equal(t, "4.8.3-2014q1", tools[idx].Version) require.Equal(t, Abs(t, "./downloaded_tools/arm-none-eabi-gcc/4.8.3-2014q1"), tools[idx].Folder) idx++ require.Equal(t, "avr-gcc", tools[idx].Name) require.Equal(t, "4.8.1-arduino5", tools[idx].Version) require.Equal(t, Abs(t, "./downloaded_tools/avr-gcc/4.8.1-arduino5"), tools[idx].Folder) idx++ require.Equal(t, "avrdude", tools[idx].Name) require.Equal(t, "6.0.1-arduino5", tools[idx].Version) require.Equal(t, Abs(t, "./downloaded_tools/avrdude/6.0.1-arduino5"), tools[idx].Folder) idx++ require.Equal(t, "bossac", tools[idx].Name) require.Equal(t, "1.5-arduino", tools[idx].Version) require.Equal(t, Abs(t, "./downloaded_tools/bossac/1.5-arduino"), tools[idx].Folder) idx++ require.Equal(t, "bossac", tools[idx].Name) require.Equal(t, "1.6.1-arduino", tools[idx].Version) require.Equal(t, Abs(t, "./downloaded_tools/bossac/1.6.1-arduino"), tools[idx].Folder) }