From c57a5acca7096c056414dfb837e65a2bb750daef Mon Sep 17 00:00:00 2001 From: Andrey Petrov Date: Wed, 24 Aug 2016 13:53:59 -0400 Subject: [PATCH] tests: Fix flake in TestHostNameCollision --- host_test.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/host_test.go b/host_test.go index 31caf95..e340267 100644 --- a/host_test.go +++ b/host_test.go @@ -68,13 +68,7 @@ func TestHostNameCollision(t *testing.T) { // Consume the initial buffer scanner.Scan() - actual := scanner.Text() - if !strings.HasPrefix(actual, "[foo] ") { - // FIXME: This is flaky. :/ - t.Errorf("First client failed to get 'foo' name: %q", actual) - } - - actual = stripPrompt(actual) + actual := stripPrompt(scanner.Text()) expected := " * foo joined. (Connected: 1)" if actual != expected { t.Errorf("Got %q; expected %q", actual, expected) @@ -84,7 +78,13 @@ func TestHostNameCollision(t *testing.T) { done <- struct{}{} scanner.Scan() - actual = stripPrompt(scanner.Text()) + actual = scanner.Text() + // This check has to happen second because prompt doesn't always + // get set before the first message. + if !strings.HasPrefix(actual, "[foo] ") { + t.Errorf("First client failed to get 'foo' name: %q", actual) + } + actual = stripPrompt(actual) expected = " * Guest1 joined. (Connected: 2)" if actual != expected { t.Errorf("Got %q; expected %q", actual, expected)