Wait for the stale refresh before counting member fetches
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful

This commit is contained in:
2026-10-25 19:08:31 +11:00
parent e5313342ba
commit 2dadb2d460
+11 -1
View File
@@ -55,9 +55,14 @@ func fetchRepomd(t *testing.T, e *Engine) string {
func TestServeStaleMemberDoesNotBlockMerge(t *testing.T) {
release := make(chan struct{})
refreshing := make(chan struct{}, 1)
var slow atomic.Bool
e, calls := staleEngine(true, func() *RPMMember {
if slow.Load() {
select {
case refreshing <- struct{}{}:
default:
}
<-release
return rpmPkgMember("a", "2")
}
@@ -78,12 +83,17 @@ func TestServeStaleMemberDoesNotBlockMerge(t *testing.T) {
t.Fatal("merge blocked on a serve_stale member refresh")
}
}
select {
case <-refreshing:
case <-time.After(5 * time.Second):
t.Fatal("background refresh never started")
}
if n := calls.Load(); n != 2 {
t.Fatalf("member fetched %d times, want 2 (cold + one single-flighted refresh)", n)
}
close(release)
deadline := time.Now().Add(time.Second)
deadline := time.Now().Add(5 * time.Second)
for fetchRepomd(t, e) == v1 {
if time.Now().After(deadline) {
t.Fatal("background refresh never reached a merge")