testutils

package
v1.8.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 23, 2020 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var NoopDNSGetter = FakeFQDNCache{
	OnGetNamesOf: func(sourceEpID uint32, ip net.IP) (fqdns []string) {
		return nil
	},
}

NoopDNSGetter always returns an empty response.

View Source
var NoopEndpointGetter = FakeEndpointGetter{
	OnGetEndpointInfo: func(ip net.IP) (endpoint v1.EndpointInfo, ok bool) {
		return nil, false
	},
}

NoopEndpointGetter always returns an empty response.

View Source
var NoopIPGetter = FakeIPGetter{
	OnGetK8sMetadata: func(ip net.IP) *ipcache.K8sMetadata {
		return nil
	},
	OnLookupSecIDByIP: func(ip net.IP) (ipcache.Identity, bool) {
		return ipcache.Identity{}, false
	},
}

NoopIPGetter always returns an empty response.

View Source
var NoopIdentityGetter = FakeIdentityGetter{
	OnGetIdentity: func(securityIdentity uint32) (*models.Identity, error) {
		return &models.Identity{}, nil
	},
}

NoopIdentityGetter always returns an empty response.

View Source
var NoopServiceGetter = FakeServiceGetter{
	OnGetServiceByAddr: func(ip net.IP, port uint16) (service flowpb.Service, ok bool) {
		return flowpb.Service{}, false
	},
}

NoopServiceGetter always returns an empty response.

Functions

func CreateL3L4Payload

func CreateL3L4Payload(message interface{}, layers ...gopacket.SerializableLayer) ([]byte, error)

CreateL3L4Payload assembles a L3/L4 payload for testing purposes

func MustCreateL3L4Payload

func MustCreateL3L4Payload(message interface{}, layers ...gopacket.SerializableLayer) []byte

MustCreateL3L4Payload wraps CreateL3L4Payload, but panics on error

Types

type FakeEndpointGetter

type FakeEndpointGetter struct {
	OnGetEndpointInfo func(ip net.IP) (endpoint v1.EndpointInfo, ok bool)
}

FakeEndpointGetter is used for unit tests that needs EndpointGetter.

func (*FakeEndpointGetter) GetEndpointInfo

func (f *FakeEndpointGetter) GetEndpointInfo(ip net.IP) (endpoint v1.EndpointInfo, ok bool)

GetEndpointInfo implements EndpointGetter.GetEndpointInfo.

type FakeEndpointInfo

type FakeEndpointInfo struct {
	ContainerIDs []string
	ID           uint64
	Identity     identity.NumericIdentity
	IPv4         net.IP
	IPv6         net.IP
	PodName      string
	PodNamespace string
	Labels       []string
}

FakeEndpointInfo implements v1.EndpointInfo for unit tests. All interface methods return values exposed in the fields.

func (*FakeEndpointInfo) GetID

func (e *FakeEndpointInfo) GetID() uint64

GetID returns the ID of the endpoint.

func (*FakeEndpointInfo) GetIdentity

func (e *FakeEndpointInfo) GetIdentity() identity.NumericIdentity

GetIdentity returns the numerical security identity of the endpoint.

func (*FakeEndpointInfo) GetK8sNamespace

func (e *FakeEndpointInfo) GetK8sNamespace() string

GetK8sNamespace returns the pod namespace of the endpoint.

func (*FakeEndpointInfo) GetK8sPodName

func (e *FakeEndpointInfo) GetK8sPodName() string

GetK8sPodName returns the pod name of the endpoint.

func (*FakeEndpointInfo) GetLabels

func (e *FakeEndpointInfo) GetLabels() []string

GetLabels returns the labels of the endpoint.

type FakeFQDNCache

type FakeFQDNCache struct {
	OnInitializeFrom func(entries []*models.DNSLookup)
	OnAddDNSLookup   func(epID uint32, lookupTime time.Time, domainName string, ips []net.IP, ttl uint32)
	OnGetNamesOf     func(epID uint32, ip net.IP) []string
}

FakeFQDNCache is used for unit tests that needs FQDNCache and/or DNSGetter.

func (*FakeFQDNCache) AddDNSLookup

func (f *FakeFQDNCache) AddDNSLookup(epID uint32, lookupTime time.Time, domainName string, ips []net.IP, ttl uint32)

AddDNSLookup implements FQDNCache.AddDNSLookup.

func (*FakeFQDNCache) GetNamesOf

func (f *FakeFQDNCache) GetNamesOf(epID uint32, ip net.IP) []string

GetNamesOf implements FQDNCache.GetNameOf.

func (*FakeFQDNCache) InitializeFrom

func (f *FakeFQDNCache) InitializeFrom(entries []*models.DNSLookup)

InitializeFrom implements FQDNCache.InitializeFrom.

type FakeFlow added in v1.8.0

type FakeFlow struct {
	Time               *timestamp.Timestamp
	Verdict            flowpb.Verdict
	DropReason         uint32
	Ethernet           *flowpb.Ethernet
	IP                 *flowpb.IP
	L4                 *flowpb.Layer4
	Source             *flowpb.Endpoint
	Destination        *flowpb.Endpoint
	Type               flowpb.FlowType
	NodeName           string
	SourceNames        []string
	DestinationNames   []string
	L7                 *flowpb.Layer7
	Reply              bool
	EventType          *flowpb.CiliumEventType
	SourceService      *flowpb.Service
	DestinationService *flowpb.Service
	TrafficDirection   flowpb.TrafficDirection
	PolicyMatchType    uint32
}

FakeFlow implements v1.Flow for unit tests. All interface methods return values exposed in the fields.

func (*FakeFlow) GetDestination added in v1.8.0

func (f *FakeFlow) GetDestination() *flowpb.Endpoint

GetDestination implements v1.Flow for the FakeFlow.

func (*FakeFlow) GetDestinationNames added in v1.8.0

func (f *FakeFlow) GetDestinationNames() []string

GetDestinationNames implements v1.Flow for the FakeFlow.

func (*FakeFlow) GetDestinationService added in v1.8.0

func (f *FakeFlow) GetDestinationService() *flowpb.Service

GetDestinationService implements v1.Flow for the FakeFlow.

func (*FakeFlow) GetDropReason added in v1.8.0

func (f *FakeFlow) GetDropReason() uint32

GetDropReason implements v1.Flow for the FakeFlow.

func (*FakeFlow) GetEthernet added in v1.8.0

func (f *FakeFlow) GetEthernet() *flowpb.Ethernet

GetEthernet implements v1.Flow for the FakeFlow.

func (*FakeFlow) GetEventType added in v1.8.0

func (f *FakeFlow) GetEventType() *flowpb.CiliumEventType

GetEventType implements v1.Flow for the FakeFlow.

func (*FakeFlow) GetIP added in v1.8.0

func (f *FakeFlow) GetIP() *flowpb.IP

GetIP implements v1.Flow for the FakeFlow.

func (*FakeFlow) GetL4 added in v1.8.0

func (f *FakeFlow) GetL4() *flowpb.Layer4

GetL4 implements v1.Flow for the FakeFlow.

func (*FakeFlow) GetL7 added in v1.8.0

func (f *FakeFlow) GetL7() *flowpb.Layer7

GetL7 implements v1.Flow for the FakeFlow.

func (*FakeFlow) GetNodeName added in v1.8.0

func (f *FakeFlow) GetNodeName() string

GetNodeName implements v1.Flow for the FakeFlow.

func (*FakeFlow) GetPolicyMatchType added in v1.8.0

func (f *FakeFlow) GetPolicyMatchType() uint32

GetPolicyMatchType implements v1.Flow for the FakeFlow.

func (*FakeFlow) GetReply added in v1.8.0

func (f *FakeFlow) GetReply() bool

GetReply implements v1.Flow for the FakeFlow.

func (*FakeFlow) GetSource added in v1.8.0

func (f *FakeFlow) GetSource() *flowpb.Endpoint

GetSource implements v1.Flow for the FakeFlow.

func (*FakeFlow) GetSourceNames added in v1.8.0

func (f *FakeFlow) GetSourceNames() []string

GetSourceNames implements v1.Flow for the FakeFlow.

func (*FakeFlow) GetSourceService added in v1.8.0

func (f *FakeFlow) GetSourceService() *flowpb.Service

GetSourceService implements v1.Flow for the FakeFlow.

func (*FakeFlow) GetSummary added in v1.8.0

func (f *FakeFlow) GetSummary() string

GetSummary implements v1.Flow for the FakeFlow.

func (*FakeFlow) GetTime added in v1.8.0

func (f *FakeFlow) GetTime() *timestamp.Timestamp

GetTime implements v1.Flow for the FakeFlow.

func (*FakeFlow) GetTrafficDirection added in v1.8.0

func (f *FakeFlow) GetTrafficDirection() flowpb.TrafficDirection

GetTrafficDirection implements v1.Flow for the FakeFlow.

func (*FakeFlow) GetType added in v1.8.0

func (f *FakeFlow) GetType() flowpb.FlowType

GetType implements v1.Flow for the FakeFlow.

func (*FakeFlow) GetVerdict added in v1.8.0

func (f *FakeFlow) GetVerdict() flowpb.Verdict

GetVerdict implements v1.Flow for the FakeFlow.

func (*FakeFlow) ProtoMessage added in v1.8.0

func (f *FakeFlow) ProtoMessage()

ProtoMessage implements flowpb.Message for the FakeFlow.

func (*FakeFlow) Reset added in v1.8.0

func (f *FakeFlow) Reset()

Reset implements flowpb.Message for the FakeFlow.

func (*FakeFlow) String added in v1.8.0

func (f *FakeFlow) String() string

String implements flowpb.Message for the FakeFlow.

type FakeGRPCClientStream

type FakeGRPCClientStream struct {
	OnHeader    func() (metadata.MD, error)
	OnTrailer   func() metadata.MD
	OnCloseSend func() error
	OnContext   func() context.Context
	OnSendMsg   func(m interface{}) error
	OnRecvMsg   func(m interface{}) error
}

FakeGRPCClientStream implements google.golang.org/grpc.ClientStream interface for unit tests.

func (*FakeGRPCClientStream) CloseSend

func (c *FakeGRPCClientStream) CloseSend() error

CloseSend implements grpc.ClientStream.CloseSend.

func (*FakeGRPCClientStream) Context

func (c *FakeGRPCClientStream) Context() context.Context

Context implements grpc.ClientStream.Context.

func (*FakeGRPCClientStream) Header

func (c *FakeGRPCClientStream) Header() (metadata.MD, error)

Header implements grpc.ClientStream.Header.

func (*FakeGRPCClientStream) RecvMsg

func (c *FakeGRPCClientStream) RecvMsg(m interface{}) error

RecvMsg implements grpc.ClientStream.RecvMsg.

func (*FakeGRPCClientStream) SendMsg

func (c *FakeGRPCClientStream) SendMsg(m interface{}) error

SendMsg implements grpc.ClientStream.SendMsg.

func (*FakeGRPCClientStream) Trailer

func (c *FakeGRPCClientStream) Trailer() metadata.MD

Trailer implements grpc.ClientStream.Trailer.

type FakeGRPCServerStream

type FakeGRPCServerStream struct {
	OnSetHeader  func(metadata.MD) error
	OnSendHeader func(metadata.MD) error
	OnSetTrailer func(m metadata.MD)
	OnContext    func() context.Context
	OnSendMsg    func(m interface{}) error
	OnRecvMsg    func(m interface{}) error
}

FakeGRPCServerStream implements google.golang.org/grpc.ServerStream interface for unit tests.

func (*FakeGRPCServerStream) Context

func (s *FakeGRPCServerStream) Context() context.Context

Context implements grpc.ServerStream.Context.

func (*FakeGRPCServerStream) RecvMsg

func (s *FakeGRPCServerStream) RecvMsg(m interface{}) error

RecvMsg implements grpc.ServerStream.RecvMsg.

func (*FakeGRPCServerStream) SendHeader

func (s *FakeGRPCServerStream) SendHeader(m metadata.MD) error

SendHeader implements grpc.ServerStream.SendHeader.

func (*FakeGRPCServerStream) SendMsg

func (s *FakeGRPCServerStream) SendMsg(m interface{}) error

SendMsg implements grpc.ServerStream.SendMsg.

func (*FakeGRPCServerStream) SetHeader

func (s *FakeGRPCServerStream) SetHeader(m metadata.MD) error

SetHeader implements grpc.ServerStream.SetHeader.

func (*FakeGRPCServerStream) SetTrailer

func (s *FakeGRPCServerStream) SetTrailer(m metadata.MD)

SetTrailer implements grpc.ServerStream.SetTrailer.

type FakeGetFlowsServer

type FakeGetFlowsServer struct {
	OnSend func(response *observerpb.GetFlowsResponse) error
	*FakeGRPCServerStream
}

FakeGetFlowsServer is used for unit tests and implements the observerpb.ebserver_GetFlowsServer interface.

func (*FakeGetFlowsServer) Send

Send implements observerpb.ebserver_GetFlowsServer.Send.

type FakeIPGetter

type FakeIPGetter struct {
	OnGetK8sMetadata  func(ip net.IP) *ipcache.K8sMetadata
	OnLookupSecIDByIP func(ip net.IP) (ipcache.Identity, bool)
}

FakeIPGetter is used for unit tests that needs IPGetter.

func (*FakeIPGetter) GetK8sMetadata

func (f *FakeIPGetter) GetK8sMetadata(ip net.IP) *ipcache.K8sMetadata

GetK8sMetadata implements FakeIPGetter.GetK8sMetadata.

func (*FakeIPGetter) LookupSecIDByIP

func (f *FakeIPGetter) LookupSecIDByIP(ip net.IP) (ipcache.Identity, bool)

LookupSecIDByIP implements FakeIPGetter.LookupSecIDByIP.

type FakeIdentityGetter

type FakeIdentityGetter struct {
	OnGetIdentity func(securityIdentity uint32) (*models.Identity, error)
}

FakeIdentityGetter is used for unit tests that need IdentityGetter.

func (*FakeIdentityGetter) GetIdentity

func (f *FakeIdentityGetter) GetIdentity(securityIdentity uint32) (*models.Identity, error)

GetIdentity implements IdentityGetter.GetIPIdentity.

type FakePeerClient

type FakePeerClient struct {
	OnNotify func(ctx context.Context, in *peerpb.NotifyRequest, opts ...grpc.CallOption) (peerpb.Peer_NotifyClient, error)
	OnClose  func() error
}

FakePeerClient is used for unit tests and implements the peerTypes.Client interface.

func (*FakePeerClient) Close

func (c *FakePeerClient) Close() error

Close implements peerTypes.Client.Close.

func (*FakePeerClient) Notify

Notify implements peerTypes.Client.Notify.

type FakePeerClientBuilder

type FakePeerClientBuilder struct {
	OnClient func(target string) (peerTypes.Client, error)
}

FakePeerClientBuilder is used for unit tests and implements the peerTypes.ClientBuilder interface.

func (FakePeerClientBuilder) Client

func (b FakePeerClientBuilder) Client(target string) (peerTypes.Client, error)

Client implements peerTypes.ClientBuilder.Client.

type FakePeerNotifyClient

type FakePeerNotifyClient struct {
	OnRecv func() (*peerpb.ChangeNotification, error)
	*FakeGRPCClientStream
}

FakePeerNotifyClient is used for unit tests and implements the peerpb.Peer_NotifyClient interface.

func (*FakePeerNotifyClient) Recv

Recv implements peerpb.Peer_NotifyClient.Recv.

type FakePeerNotifyServer

type FakePeerNotifyServer struct {
	OnSend func(response *peerpb.ChangeNotification) error
	*FakeGRPCServerStream
}

FakePeerNotifyServer is used for unit tests and implements the peerpb.Peer_NotifyServer interface.

func (*FakePeerNotifyServer) Send

Send implements peerpb.Peer_NotifyServer.Send.

type FakeServiceGetter

type FakeServiceGetter struct {
	OnGetServiceByAddr func(ip net.IP, port uint16) (service flowpb.Service, ok bool)
}

FakeServiceGetter is used for unit tests that need ServiceGetter.

func (*FakeServiceGetter) GetServiceByAddr

func (f *FakeServiceGetter) GetServiceByAddr(ip net.IP, port uint16) (service flowpb.Service, ok bool)

GetServiceByAddr implements FakeServiceGetter.GetServiceByAddr.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL