@@ -46,21 +46,31 @@ type ArduinoCLI struct {
4646 daemonClient commands.ArduinoCoreServiceClient
4747}
4848
49+ // ArduinoCLIConfig
50+ type ArduinoCLIConfig struct {
51+ ArduinoCLIPath * paths.Path
52+ UseSharedStagingFolder bool
53+ }
54+
4955// NewArduinoCliWithinEnvironment creates a new Arduino CLI client inside the given environment.
50- func NewArduinoCliWithinEnvironment (t * testing.T , cliPath * paths.Path , env * Environment ) * ArduinoCLI {
51- cli := NewArduinoCli (t , cliPath )
56+ func NewArduinoCliWithinEnvironment (t * testing.T , config * ArduinoCLIConfig , env * Environment ) * ArduinoCLI {
57+ cli := NewArduinoCli (t , config )
58+ staging := env .downloadsDir
59+ if ! config .UseSharedStagingFolder {
60+ staging = env .Root ().Join ("arduino15/staging" )
61+ }
5262 cli .cliEnvVars = []string {
5363 fmt .Sprintf ("ARDUINO_DATA_DIR=%s" , env .Root ().Join ("arduino15" )),
54- fmt .Sprintf ("ARDUINO_DOWNLOADS_DIR=%s" , env . Root (). Join ( "arduino15/ staging" ) ),
64+ fmt .Sprintf ("ARDUINO_DOWNLOADS_DIR=%s" , staging ),
5565 fmt .Sprintf ("ARDUINO_SKETCHBOOK_DIR=%s" , env .Root ().Join ("Arduino" )),
5666 }
5767 return cli
5868}
5969
6070// NewArduinoCli creates a new Arduino CLI client.
61- func NewArduinoCli (t * testing.T , cliPath * paths. Path ) * ArduinoCLI {
71+ func NewArduinoCli (t * testing.T , config * ArduinoCLIConfig ) * ArduinoCLI {
6272 return & ArduinoCLI {
63- path : cliPath ,
73+ path : config . ArduinoCLIPath ,
6474 t : require .New (t ),
6575 }
6676}
0 commit comments