proxytest

package
v0.12.0 Latest Latest
Warning

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

Go to latest
Published: Dec 4, 2020 License: Apache-2.0 Imports: 6 Imported by: 0

README

test framework for proxy-wasm-go-sdk

With proxytest build tag, you can test your extension with the official command:

go test -tags=proxytest ./... 

This framework simulates the expected behavior of Envoyproxy, and you can test your extensions without running Envoy. For detail, see examples/*/main_test.go.

Note that we have not covered all the functionality, and the API is very likely to change in the future.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type EmulatorOption added in v0.0.5

type EmulatorOption struct {
	// contains filtered or unexported fields
}

func NewEmulatorOption added in v0.0.5

func NewEmulatorOption() *EmulatorOption

func (*EmulatorOption) WithNewHttpContext added in v0.0.5

func (o *EmulatorOption) WithNewHttpContext(f func(uint32, uint32) proxywasm.HttpContext) *EmulatorOption

func (*EmulatorOption) WithNewRootContext added in v0.0.5

func (o *EmulatorOption) WithNewRootContext(f func(uint32) proxywasm.RootContext) *EmulatorOption

func (*EmulatorOption) WithNewStreamContext added in v0.0.5

func (o *EmulatorOption) WithNewStreamContext(f func(uint32, uint32) proxywasm.StreamContext) *EmulatorOption

func (*EmulatorOption) WithPluginConfiguration added in v0.0.5

func (o *EmulatorOption) WithPluginConfiguration(data []byte) *EmulatorOption

func (*EmulatorOption) WithVMConfiguration added in v0.0.5

func (o *EmulatorOption) WithVMConfiguration(data []byte) *EmulatorOption

type HostEmulator added in v0.0.5

type HostEmulator interface {
	Done()

	// Root
	StartVM()
	StartPlugin()
	FinishVM()

	GetCalloutAttributesFromContext(contextID uint32) []HttpCalloutAttribute
	PutCalloutResponse(contextID uint32, headers, trailers [][2]string, body []byte)

	GetLogs(level types.LogLevel) []string
	GetTickPeriod() uint32
	Tick()
	GetQueueSize(queueID uint32) int

	// network
	NetworkFilterInitConnection() (contextID uint32)
	NetworkFilterPutUpstreamData(contextID uint32, data []byte)
	NetworkFilterPutDownstreamData(contextID uint32, data []byte)
	NetworkFilterCloseUpstreamConnection(contextID uint32)
	NetworkFilterCloseDownstreamConnection(contextID uint32)
	NetworkFilterCompleteConnection(contextID uint32)

	// http
	HttpFilterInitContext() (contextID uint32)
	HttpFilterPutRequestHeaders(contextID uint32, headers [][2]string)
	HttpFilterGetRequestHeaders(contextID uint32) (headers [][2]string)
	HttpFilterPutRequestHeadersEndOfStream(contextID uint32, headers [][2]string, endOfStream bool)
	HttpFilterPutResponseHeaders(contextID uint32, headers [][2]string)
	HttpFilterGetResponseHeaders(contextID uint32) (headers [][2]string)
	HttpFilterPutResponseHeadersEndOfStream(contextID uint32, headers [][2]string, endOfStream bool)
	HttpFilterPutRequestTrailers(contextID uint32, headers [][2]string)
	HttpFilterPutResponseTrailers(contextID uint32, headers [][2]string)
	HttpFilterPutRequestBody(contextID uint32, body []byte)
	HttpFilterPutRequestBodyEndOfStream(contextID uint32, body []byte, endOfStream bool)
	HttpFilterGetRequestBody(contextID uint32) []byte
	HttpFilterPutResponseBody(contextID uint32, body []byte)
	HttpFilterPutResponseBodyEndOfStream(contextID uint32, body []byte, endOfStream bool)
	HttpFilterGetResponseBody(contextID uint32) []byte
	HttpFilterCompleteHttpStream(contextID uint32)
	HttpFilterGetCurrentStreamAction(contextID uint32) types.Action
	HttpFilterGetSentLocalResponse(contextID uint32) *LocalHttpResponse
}

func NewHostEmulator added in v0.0.5

func NewHostEmulator(opt *EmulatorOption) HostEmulator

type HttpCalloutAttribute added in v0.0.5

type HttpCalloutAttribute struct {
	CalloutID         uint32
	Upstream          string
	Headers, Trailers [][2]string
	Body              []byte
}

type LocalHttpResponse

type LocalHttpResponse struct {
	StatusCode       uint32
	StatusCodeDetail string
	Data             []byte
	Headers          [][2]string
	GRPCStatus       int32
}

Jump to

Keyboard shortcuts

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