diff --git a/go.mod b/go.mod index b4e65b61559..93fb125a868 100644 --- a/go.mod +++ b/go.mod @@ -1,8 +1,6 @@ module github.com/arduino/arduino-cli -go 1.22 - -toolchain go1.22.3 +go 1.22.3 // We must use this fork until https://github.com/mailru/easyjson/pull/372 is merged replace github.com/mailru/easyjson => github.com/cmaglie/easyjson v0.8.1 @@ -38,6 +36,7 @@ require ( github.com/xeipuuv/gojsonschema v1.2.0 go.bug.st/cleanup v1.0.0 go.bug.st/downloader/v2 v2.2.0 + go.bug.st/f v0.4.0 go.bug.st/relaxed-semver v0.12.0 go.bug.st/testifyjson v1.2.0 golang.org/x/term v0.25.0 diff --git a/go.sum b/go.sum index 771924588a9..495585ef9a9 100644 --- a/go.sum +++ b/go.sum @@ -215,6 +215,8 @@ go.bug.st/cleanup v1.0.0 h1:XVj1HZxkBXeq3gMT7ijWUpHyIC1j8XAoNSyQ06CskgA= go.bug.st/cleanup v1.0.0/go.mod h1:EqVmTg2IBk4znLbPD28xne3abjsJftMdqqJEjhn70bk= go.bug.st/downloader/v2 v2.2.0 h1:Y0jSuDISNhrzePkrAWqz9xUC3xol9hqZo/+tz1D4EqY= go.bug.st/downloader/v2 v2.2.0/go.mod h1:VZW2V1iGKV8rJL2ZEGIDzzBeKowYv34AedJz13RzVII= +go.bug.st/f v0.4.0 h1:Vstqb950nMA+PhAlRxUw8QL1ntHy/gXHNyyzjkQLJ10= +go.bug.st/f v0.4.0/go.mod h1:bMo23205ll7UW63KwO1ut5RdlJ9JK8RyEEr88CmOF5Y= go.bug.st/relaxed-semver v0.12.0 h1:se8v3lTdAAFp68+/RS/0Y/nFdnpdzkP5ICY04SPau4E= go.bug.st/relaxed-semver v0.12.0/go.mod h1:Cpcbiig6Omwlq6bS7i3MQWiqS7W7HDd8CAnZFC40Cl0= go.bug.st/serial v1.6.1 h1:VSSWmUxlj1T/YlRo2J104Zv3wJFrjHIl/T3NeruWAHY= diff --git a/internal/arduino/builder/builder.go b/internal/arduino/builder/builder.go index 608baead6ee..91c74965782 100644 --- a/internal/arduino/builder/builder.go +++ b/internal/arduino/builder/builder.go @@ -352,7 +352,10 @@ func (b *Builder) logIfVerbose(warn bool, msg string) { // Build fixdoc func (b *Builder) Build() error { - b.Progress.AddSubSteps(6 /** preprocess **/ + 21 /** build **/) + b.Progress.AddSubSteps(6 + // preprocess + 18 + // build + 1, // size + ) defer b.Progress.RemoveSubSteps() if err := b.preprocess(); err != nil { @@ -362,15 +365,10 @@ func (b *Builder) Build() error { buildErr := b.build() b.libsDetector.PrintUsedAndNotUsedLibraries(buildErr != nil) - b.Progress.CompleteStep() - b.printUsedLibraries(b.libsDetector.ImportedLibraries()) - b.Progress.CompleteStep() - if buildErr != nil { return buildErr } - b.Progress.CompleteStep() if err := b.size(); err != nil { return err diff --git a/internal/integrationtest/daemon/daemon_test.go b/internal/integrationtest/daemon/daemon_test.go index 742e7774316..47225784361 100644 --- a/internal/integrationtest/daemon/daemon_test.go +++ b/internal/integrationtest/daemon/daemon_test.go @@ -24,7 +24,6 @@ import ( "time" "github.com/arduino/arduino-cli/commands/cmderrors" - f "github.com/arduino/arduino-cli/internal/algorithms" "github.com/arduino/arduino-cli/internal/integrationtest" "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1" "github.com/arduino/go-paths-helper" @@ -194,13 +193,15 @@ func TestDaemonCompileOptions(t *testing.T) { if msg.GetErrStream() != nil { fmt.Printf("COMPILE> %v\n", string(msg.GetErrStream())) } - analyzer.Process(msg.GetProgress()) + if pr := msg.GetProgress(); pr != nil { + fmt.Printf("COMPILE PROGRESS> %v\n", pr) + analyzer.Process(pr) + } } + // https://github.com/arduino/arduino-cli/issues/2016 - // assert that the task progress is increasing and doesn't contain multiple 100% values - results := analyzer.Results[""] - require.True(t, results[len(results)-1].GetCompleted(), fmt.Sprintf("latest percent value: %v", results[len(results)-1].GetPercent())) - require.IsNonDecreasing(t, f.Map(results, (*commands.TaskProgress).GetPercent)) + // https://github.com/arduino/arduino-cli/issues/2711 + analyzer.Check(t) } func TestDaemonCompileAfterFailedLibInstall(t *testing.T) { diff --git a/internal/integrationtest/daemon/task_progress_test.go b/internal/integrationtest/daemon/task_progress_test.go index c106a2c6588..b24d809c716 100644 --- a/internal/integrationtest/daemon/task_progress_test.go +++ b/internal/integrationtest/daemon/task_progress_test.go @@ -19,6 +19,8 @@ import ( "testing" "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1" + "github.com/stretchr/testify/require" + "go.bug.st/f" ) // TaskProgressAnalyzer analyzes TaskProgress messages for consistency @@ -44,3 +46,13 @@ func (a *TaskProgressAnalyzer) Process(progress *commands.TaskProgress) { taskName := progress.GetName() a.Results[taskName] = append(a.Results[taskName], progress) } + +func (a *TaskProgressAnalyzer) Check(t *testing.T) { + for task, results := range a.Results { + require.Equal(t, 1, f.Count(results, (*commands.TaskProgress).GetCompleted), "Got multiple 'completed' messages on task %s", task) + l := len(results) + require.True(t, results[l-1].GetCompleted(), "Last message is not 'completed' on task: %s", task) + require.Equal(t, results[l-1].GetPercent(), float32(100), "Last message is not 100% on task: %s", task) + require.IsNonDecreasing(t, f.Map(results, (*commands.TaskProgress).GetPercent), "Percentages are not increasing on task: %s", task) + } +} pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy