test: harden harness lifecycle recovery
This commit is contained in:
@@ -262,6 +262,86 @@ func TestBoundedSuiteLogAndFailedRunRecovery_BH_STORE_03(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestResetOnlyRemovesEphemeralState_HP_CFG_02(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
h := &harness{root: t.TempDir(), now: time.Now, out: &bytes.Buffer{}}
|
||||
current, err := h.create("reset-scratch", "integration", "sample")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
for _, name := range []string{"runtime", "pki", "scratch", "artifacts"} {
|
||||
path := filepath.Join(h.runDir(current.RunID), name)
|
||||
if err := os.Mkdir(path, 0o700); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := os.WriteFile(filepath.Join(path, "marker"), []byte(name), 0o600); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
if err := h.reset(current); err != nil {
|
||||
t.Fatalf("reset: %v", err)
|
||||
}
|
||||
for _, name := range []string{"runtime", "pki", "scratch"} {
|
||||
if _, err := os.Stat(filepath.Join(h.runDir(current.RunID), name)); !os.IsNotExist(err) {
|
||||
t.Fatalf("reset retained %s: %v", name, err)
|
||||
}
|
||||
}
|
||||
if _, err := os.Stat(filepath.Join(h.runDir(current.RunID), "artifacts", "marker")); err != nil {
|
||||
t.Fatalf("reset removed preserved artifacts: %v", err)
|
||||
}
|
||||
loaded, err := h.load(current.RunID)
|
||||
if err != nil || loaded.Phase != "reset" {
|
||||
t.Fatalf("reset manifest = (%+v, %v)", loaded, err)
|
||||
}
|
||||
|
||||
active, err := h.create("running-scratch", "integration", "sample")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := h.transition(active, "running", "start", "test"); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := h.reset(active); err == nil {
|
||||
t.Fatal("reset allowed an active run")
|
||||
}
|
||||
}
|
||||
|
||||
func TestReuseCreatesFreshRun_HP_CFG_03(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
var output bytes.Buffer
|
||||
h := &harness{root: t.TempDir(), now: time.Now, out: &output}
|
||||
previous, err := h.create("prior-run", "e2e", "reconnect")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
previous.TestCase = "^TestReconnect$"
|
||||
if err := h.writeManifest(previous); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := h.transition(previous, "reset", "reset", "test"); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := h.environmentCommand("reuse", []string{"--run-id", previous.RunID, "--new-run-id", "fresh-run"}); err != nil {
|
||||
t.Fatalf("reuse: %v", err)
|
||||
}
|
||||
stillPrevious, err := h.load(previous.RunID)
|
||||
if err != nil || stillPrevious.Phase != "reset" {
|
||||
t.Fatalf("reuse mutated source run = (%+v, %v)", stillPrevious, err)
|
||||
}
|
||||
fresh, err := h.load("fresh-run")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if fresh.Layer != previous.Layer || fresh.Suite != previous.Suite || fresh.TestCase != previous.TestCase || fresh.Phase != "created" {
|
||||
t.Fatalf("fresh reused manifest = %+v", fresh)
|
||||
}
|
||||
if !strings.Contains(output.String(), "reused_from=prior-run new_run_id=fresh-run") {
|
||||
t.Fatalf("reuse output = %q", output.String())
|
||||
}
|
||||
}
|
||||
|
||||
func TestCoverageInventoryReferencesExistingTests_HP_CFG_01(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user