MCPcopy
hub / github.com/chaozh/MIT-6.824 / TestPersist12C

Function TestPersist12C

src/raft/test_test.go:586–630  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

584}
585
586func TestPersist12C(t *testing.T) {
587 servers := 3
588 cfg := make_config(t, servers, false, false)
589 defer cfg.cleanup()
590
591 cfg.begin("Test (2C): basic persistence")
592
593 cfg.one(11, servers, true)
594
595 // crash and re-start all
596 for i := 0; i < servers; i++ {
597 cfg.start1(i, cfg.applier)
598 }
599 for i := 0; i < servers; i++ {
600 cfg.disconnect(i)
601 cfg.connect(i)
602 }
603
604 cfg.one(12, servers, true)
605
606 leader1 := cfg.checkOneLeader()
607 cfg.disconnect(leader1)
608 cfg.start1(leader1, cfg.applier)
609 cfg.connect(leader1)
610
611 cfg.one(13, servers, true)
612
613 leader2 := cfg.checkOneLeader()
614 cfg.disconnect(leader2)
615 cfg.one(14, servers-1, true)
616 cfg.start1(leader2, cfg.applier)
617 cfg.connect(leader2)
618
619 cfg.wait(4, servers, -1) // wait for leader2 to join before killing i3
620
621 i3 := (cfg.checkOneLeader() + 1) % servers
622 cfg.disconnect(i3)
623 cfg.one(15, servers-1, true)
624 cfg.start1(i3, cfg.applier)
625 cfg.connect(i3)
626
627 cfg.one(16, servers, true)
628
629 cfg.end()
630}
631
632func TestPersist22C(t *testing.T) {
633 servers := 5

Callers

nothing calls this directly

Calls 10

oneMethod · 0.80
start1Method · 0.80
checkOneLeaderMethod · 0.80
waitMethod · 0.80
make_configFunction · 0.70
cleanupMethod · 0.45
beginMethod · 0.45
disconnectMethod · 0.45
connectMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected