This file is indexed.

/usr/share/gocode/src/github.com/weaveworks/mesh/mocks_test.go is in golang-github-weaveworks-mesh-dev 0+git20161024.3dd75b1-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
// No mocks are tested by this file.
//
// It supplies some mock implementations to other unit tests, and is
// named "...test.go" so it is only compiled under `go test`.

package mesh

import (
	"fmt"
	"testing"

	"github.com/stretchr/testify/require"
)

// Add to peers a connection from peers.ourself to p
func (peers *Peers) AddTestConnection(p *Peer) {
	summary := p.peerSummary
	summary.Version = 0
	toPeer := newPeerFromSummary(summary)
	toPeer = peers.fetchWithDefault(toPeer) // Has side-effect of incrementing refcount
	conn := newMockConnection(peers.ourself.Peer, toPeer)
	peers.ourself.addConnection(conn)
	peers.ourself.connectionEstablished(conn)
}

// Add to peers a connection from p1 to p2
func (peers *Peers) AddTestRemoteConnection(p1, p2 *Peer) {
	fromPeer := newPeerFrom(p1)
	fromPeer = peers.fetchWithDefault(fromPeer)
	toPeer := newPeerFrom(p2)
	toPeer = peers.fetchWithDefault(toPeer)
	peers.ourself.addConnection(newRemoteConnection(fromPeer, toPeer, "", false, false))
}

func (peers *Peers) DeleteTestConnection(p *Peer) {
	toName := p.Name
	toPeer := peers.Fetch(toName)
	peers.dereference(toPeer)
	conn, _ := peers.ourself.ConnectionTo(toName)
	peers.ourself.deleteConnection(conn)
}

// mockConnection used in testing is very similar to a
// RemoteConnection, without the RemoteTCPAddr(). We are making it a
// separate type in order to distinguish what is created by the test
// from what is created by the real code.
func newMockConnection(from, to *Peer) Connection {
	type mockConnection struct{ *remoteConnection }
	return &mockConnection{newRemoteConnection(from, to, "", false, false)}
}

func checkEqualConns(t *testing.T, ourName PeerName, got, wanted map[PeerName]Connection) {
	checkConns := make(peerNameSet)
	for _, conn := range wanted {
		checkConns[conn.Remote().Name] = struct{}{}
	}
	for _, conn := range got {
		remoteName := conn.Remote().Name
		if _, found := checkConns[remoteName]; found {
			delete(checkConns, remoteName)
		} else {
			require.FailNow(t, fmt.Sprintf("Unexpected connection from %s to %s", ourName, remoteName))
		}
	}
	if len(checkConns) > 0 {
		require.FailNow(t, fmt.Sprintf("Expected connections not found: from %s to %v", ourName, checkConns))
	}
}

// Get all the peers from a Peers in a slice
func (peers *Peers) allPeers() []*Peer {
	var res []*Peer
	for _, peer := range peers.byName {
		res = append(res, peer)
	}
	return res
}

func (peers *Peers) allPeersExcept(excludeName PeerName) []*Peer {
	res := peers.allPeers()
	for i, peer := range res {
		if peer.Name == excludeName {
			return append(res[:i], res[i+1:]...)
		}
	}
	return res
}

// Check that the peers slice matches the wanted peers
func checkPeerArray(t *testing.T, peers []*Peer, wantedPeers ...*Peer) {
	checkTopologyPeers(t, false, peers, wantedPeers...)
}

// Check that the peers slice matches the wanted peers and optionally
// all of their connections
func checkTopologyPeers(t *testing.T, checkConns bool, peers []*Peer, wantedPeers ...*Peer) {
	check := make(map[PeerName]*Peer)
	for _, peer := range wantedPeers {
		check[peer.Name] = peer
	}
	for _, peer := range peers {
		name := peer.Name
		if wantedPeer, found := check[name]; found {
			if checkConns {
				checkEqualConns(t, name, peer.connections, wantedPeer.connections)
			}
			delete(check, name)
		} else {
			require.FailNow(t, fmt.Sprintf("Unexpected peer: %s", name))
		}
	}
	if len(check) > 0 {
		require.FailNow(t, fmt.Sprintf("Expected peers not found: %v", check))
	}
}