From fc6d0a6cdb3b6d533d3986462bc990350cb8d651 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Wed, 22 Jan 2025 17:09:32 +0100 Subject: [PATCH] Updated integration test --- internal/integrationtest/arduino-cli.go | 17 ++++++++++++++--- internal/integrationtest/http_server.go | 5 ++++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/internal/integrationtest/arduino-cli.go b/internal/integrationtest/arduino-cli.go index c157a57d7a2..67c9ae61d62 100644 --- a/internal/integrationtest/arduino-cli.go +++ b/internal/integrationtest/arduino-cli.go @@ -123,6 +123,13 @@ func NewArduinoCliWithinEnvironment(env *Environment, config *ArduinoCLIConfig) // It returns a testsuite.Environment and an ArduinoCLI client to perform the integration tests. // The Environment must be disposed by calling the CleanUp method via defer. func CreateEnvForDaemon(t *testing.T) (*Environment, *ArduinoCLI) { + return CreateEnvForDaemonWithUserAgent(t, "cli-test/0.0.0") +} + +// CreateEnvForDaemonWithUserAgent performs the minimum required operations to start the arduino-cli daemon. +// It returns a testsuite.Environment and an ArduinoCLI client to perform the integration tests. +// The Environment must be disposed by calling the CleanUp method via defer. +func CreateEnvForDaemonWithUserAgent(t *testing.T, userAgent string) (*Environment, *ArduinoCLI) { env := NewEnvironment(t) cli := NewArduinoCliWithinEnvironment(env, &ArduinoCLIConfig{ @@ -130,7 +137,7 @@ func CreateEnvForDaemon(t *testing.T) (*Environment, *ArduinoCLI) { UseSharedStagingFolder: true, }) - _ = cli.StartDaemon(false) + _ = cli.StartDaemon(false, userAgent) return env, cli } @@ -410,7 +417,7 @@ func (cli *ArduinoCLI) run(stdoutBuff, stderrBuff io.Writer, stdinBuff io.Reader } // StartDaemon starts the Arduino CLI daemon. It returns the address of the daemon. -func (cli *ArduinoCLI) StartDaemon(verbose bool) string { +func (cli *ArduinoCLI) StartDaemon(verbose bool, userAgent string) string { args := []string{"daemon", "--json"} if cli.cliConfigPath != nil { args = append([]string{"--config-file", cli.cliConfigPath.String()}, args...) @@ -450,7 +457,11 @@ func (cli *ArduinoCLI) StartDaemon(verbose bool) string { for retries := 5; retries > 0; retries-- { time.Sleep(time.Second) - conn, err := grpc.NewClient(cli.daemonAddr, grpc.WithTransportCredentials(insecure.NewCredentials())) + conn, err := grpc.NewClient( + cli.daemonAddr, + grpc.WithTransportCredentials(insecure.NewCredentials()), + grpc.WithUserAgent(userAgent), + ) if err != nil { connErr = err continue diff --git a/internal/integrationtest/http_server.go b/internal/integrationtest/http_server.go index 6d04a2a4489..4255979402c 100644 --- a/internal/integrationtest/http_server.go +++ b/internal/integrationtest/http_server.go @@ -33,7 +33,10 @@ func (env *Environment) HTTPServeFile(port uint16, path *paths.Path, isDaemon bo http.ServeFile(w, r, path.String()) if isDaemon { // Test that the user-agent contains metadata from the context when the CLI is in daemon mode - require.Contains(t, r.Header.Get("User-Agent"), "arduino-cli/git-snapshot grpc-go") + userAgent := r.Header.Get("User-Agent") + require.Contains(t, userAgent, "arduino-cli/git-snapshot") + require.Contains(t, userAgent, "cli-test/0.0.0") + require.Contains(t, userAgent, "grpc-go") } }) server := &http.Server{