Record the asked builds under a lock in the merge tests' helper, which the merge window's goroutine and the test call at once (issue 1543)
mesh/merge-gate head 54d8d139ad5b merged into trunk f4584e6fa285 — pass: builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus…
mesh/repo-check head 54d8d139ad5b merged into trunk f4584e6fa285 — pass: its merge-check.sh passed
mesh/delivery delivered
mesh/merge-gate head 54d8d139ad5b merged into trunk f4584e6fa285 — pass: builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus…
mesh/repo-check head 54d8d139ad5b merged into trunk f4584e6fa285 — pass: its merge-check.sh passed
mesh/delivery delivered
This commit is contained in:
@@ -4,6 +4,7 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"sync"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"git.novox.be/novox/mesh-sdk/go/catalogue"
|
"git.novox.be/novox/mesh-sdk/go/catalogue"
|
||||||
@@ -11,12 +12,16 @@ import (
|
|||||||
"github.com/novox/mesh-controller/internal/link"
|
"github.com/novox/mesh-controller/internal/link"
|
||||||
)
|
)
|
||||||
|
|
||||||
// asksWithPaths records every build a merge asks for, as repository, path and ref.
|
// asksWithPaths records every build a merge asks for, as repository, path and ref. The merge window's goroutine and
|
||||||
|
// the test's own may ask at once, so the record is written under a lock (issue 1543).
|
||||||
func asksWithPaths(t *testing.T) *[][3]string {
|
func asksWithPaths(t *testing.T) *[][3]string {
|
||||||
t.Helper()
|
t.Helper()
|
||||||
var asked [][3]string
|
var asked [][3]string
|
||||||
|
var mu sync.Mutex
|
||||||
was := askABuild
|
was := askABuild
|
||||||
askABuild = func(_ context.Context, source buildSource, path, ref string) (string, error) {
|
askABuild = func(_ context.Context, source buildSource, path, ref string) (string, error) {
|
||||||
|
mu.Lock()
|
||||||
|
defer mu.Unlock()
|
||||||
asked = append(asked, [3]string{source.Repository, path, ref})
|
asked = append(asked, [3]string{source.Repository, path, ref})
|
||||||
return "b-" + path, nil
|
return "b-" + path, nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user