carlos / platform Public

Clone
git clone https://amadan.net/carlos/platform

Plain git — no account needed to clone.

Download

Download this file

1package hostclaim
2
3import "testing"
4
5// m-2: transition authority and observation catch-up are different questions.
6func TestPlan9Fix2ObservationCatchesUpAcrossAdjacentTableEdgesOnly(t *testing.T) {
7 for _, c := range []struct {
8 kind, from, to string
9 observes bool
10 }{
11 {KindLanding, PhaseLandingProbing, PhaseLandingProbing, true},
12 {KindLanding, PhaseLandingProbing, PhaseLandingProbed, true},
13 {KindLanding, PhaseLandingProbing, PhaseLandingCommitted, true},
14 {KindLanding, PhaseLandingProbed, PhaseLandingCommitted, true},
15 {KindLanding, PhaseLandingCommitted, PhaseLandingProbed, false},
16 {KindLanding, PhaseLandingProbed, PhaseLandingProbing, false},
17 {KindLanding, PhaseLandingProbing, "restored", false},
18 {KindLanding, "restored", PhaseLandingCommitted, false},
19 {KindRestoring, "releasing", "released", false},
20 {"", PhaseLandingProbing, PhaseLandingProbed, false},
21 } {
22 if got := SessionObserves(c.kind, c.from, c.to); got != c.observes {
23 t.Errorf("SessionObserves(%q,%q,%q) = %v, want %v", c.kind, c.from, c.to, got, c.observes)
24 }
25 }
26 // Write authority for an actual transition still never skips a step.
27 if SessionContinues(KindLanding, PhaseLandingProbing, PhaseLandingCommitted) {
28 t.Fatal("SessionContinues allows a skipped transition")
29 }
30}
31