F-delivery 8: two claims never one number, on the bus, in the builder's whole-module test
The case ran only on the in-memory store. Eight claims of one name at once on the builder's state versions, through its own bus adapter, get eight versions; with Create turned into Put they share one. Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
This commit is contained in:
@@ -9,6 +9,7 @@ import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"maps"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"slices"
|
||||
@@ -613,6 +614,29 @@ func TestBuilderMakesADoneKeyWithTheDigests(t *testing.T) { // 1607/AC7
|
||||
if a := reg.answered(t, key, again); a.Refused || a.Do != versions.AgainRenumber || a.Version != "0.1.6" {
|
||||
t.Errorf("builder_publish_again = %+v, want a new number, 0.1.6", a)
|
||||
}
|
||||
// Running-testing note (review round 1): two claims never get one number on the bus's own compare-and-set, as
|
||||
// the builder's state versions keeps them: eight claims of one name at once, eight versions.
|
||||
store := versions.Versions{Store: awaitedVersions{process.AwaitBucket(b.ctx, b.js, nil, versions.Bucket, "", t.Logf)}}
|
||||
numbers := make(chan string, 8)
|
||||
var claims sync.WaitGroup
|
||||
for i := range 8 {
|
||||
claims.Go(func() {
|
||||
d, _, err := store.Number(b.ctx, versions.Claim{Name: "netcheck/race", Kind: versions.KindBundle, Fingerprint: fmt.Sprintf("f%d", i)})
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
numbers <- d.Version
|
||||
})
|
||||
}
|
||||
claims.Wait()
|
||||
close(numbers)
|
||||
got := map[string]bool{}
|
||||
for v := range numbers {
|
||||
got[v] = true
|
||||
}
|
||||
if len(got) != 8 {
|
||||
t.Errorf("eight claims of one name at once were numbered %v, want eight versions", slices.Sorted(maps.Keys(got)))
|
||||
}
|
||||
if got := reg.numberedOf("netcheck/tools-go"); len(got) != 2 || got[1] != "0.1.6" {
|
||||
t.Errorf("version.numbered of netcheck/tools-go = %v, want 0.1.6 said after 0.1.5", got)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user