package host import ( "github.com/carlosframework/platform/internal/activator" "github.com/carlosframework/platform/internal/hostclaim" "github.com/carlosframework/platform/internal/registry" "strings" "testing" ) func TestPlan13LandingInvalidSourceWithoutHistory(t *testing.T) { for _, from := range []string{"@home", "IE"} { f := newPOFixture(t) c := f.poFlipClaim() c.Holder.Admissions = nil f.rec.Move.From = from o := hostclaim.Observed{Host: poHost, Claim: c} if _, err := f.owners.landing(t.Context(), o); err == nil { t.Fatal("invalid source accepted", from) } if got, err := predecessorRegion(c.Holder, from); err == nil || got != "" { t.Fatal("invalid predecessor accepted", got, err) } } } func TestPlan13NamedAdmissionReadsHomeStorageWithC8Gate(t *testing.T) { f := plan9D5Fixture(t) f.owners.HomeRegion = "ie" f.owners.Region = "@home" f.file(t, "old", 9, 1, 5) f.marker(t, "old") o := hostclaim.Observed{Host: recoveryHost, Claim: &hostclaim.Claim{Holder: &hostclaim.Holder{Incarnation: "inc", Location: "instances/" + recoveryHost, Generation: "new", Admissions: []hostclaim.AdmissionRecord{{Generation: "new", Predecessor: "old", Region: "ie", PredecessorRegion: "ie", Mode: "cold"}}}}} plan, err := f.owners.baseline(t.Context(), o) if err != nil || plan == nil || plan.MaxTXID != 5 { t.Fatal(plan, err) } if o.Claim.Holder.Admissions[0].Region != "ie" { t.Fatal("rewrote history") } f.owners.Sources.Files = nil o.Claim.Op = hostclaim.Op{Kind: hostclaim.KindServing, Exec: f.owners.Box} if _, err := f.owners.Select(t.Context(), registry.Route{}, o, activator.StartPolicy{}); err == nil || !strings.Contains(err.Error(), "C8") { t.Fatal("C8 provider gate removed", err) } }