func checkMinionEquals(t *testing.T, conn db.Conn, exp db.Minion) { timeout := time.After(1 * time.Second) var actual db.Minion for { actual, _ = conn.MinionSelf() actual.ID = 0 if reflect.DeepEqual(exp, actual) { return } select { case <-timeout: t.Errorf("Expected minion to be %v, but got %v\n", exp, actual) return default: time.Sleep(100 * time.Millisecond) } } }