package main import ( "fmt" "log" "testing" "github.com/libp2p/go-libp2p/examples/testutils" ) func TestMain(t *testing.T) { port1, err := testutils.FindFreePort(t, "", 5) if err != nil { log.Println(err) return } port2, err := testutils.FindFreePort(t, "", 5) if err != nil { log.Println(err) return } done := make(chan bool, 1) h1 := makeRandomNode(port1, done) h2 := makeRandomNode(port2, done) var h testutils.LogHarness // Sequence of log messages when h1 pings h2 pingh1h2 := h.NewSequence("ping h1->h2") pingh1h2.ExpectPrefix(fmt.Sprintf("%s: Sending ping to: %s", h1.ID(), h2.ID())) pingh1h2.ExpectPrefix(fmt.Sprintf("%s: Received ping request from %s", h2.ID(), h1.ID())) pingh1h2.ExpectPrefix(fmt.Sprintf("%s: Received ping response from %s", h1.ID(), h2.ID())) // Sequence of log messages when h2 pings h1 pingh2h1 := h.NewSequence("ping h2->h1") pingh2h1.ExpectPrefix(fmt.Sprintf("%s: Sending ping to: %s", h2.ID(), h1.ID())) pingh2h1.ExpectPrefix(fmt.Sprintf("%s: Received ping request from %s", h1.ID(), h2.ID())) pingh2h1.ExpectPrefix(fmt.Sprintf("%s: Received ping response from %s", h2.ID(), h1.ID())) // Sequence of log messages when h1 sends echo to h2 echoh1h2 := h.NewSequence("echo h1->h2") echoh1h2.ExpectPrefix(fmt.Sprintf("%s: Sending echo to: %s", h1.ID(), h2.ID())) echoh1h2.ExpectPrefix(fmt.Sprintf("%s: Echo response to %s", h2.ID(), h1.ID())) // Sequence of log messages when h1 sends echo to h2 echoh2h1 := h.NewSequence("echo h2->h1") echoh2h1.ExpectPrefix(fmt.Sprintf("%s: Sending echo to: %s", h2.ID(), h1.ID())) echoh2h1.ExpectPrefix(fmt.Sprintf("%s: Echo response to %s", h1.ID(), h2.ID())) h.Run(t, func() { run(h1, h2, done) }) }