...

Package servertest

import "golang.org/x/tools/internal/jsonrpc2/servertest"
Overview
Index

Overview ▾

Package servertest provides utilities for running tests against a remote LSP server.

type Connector

Connector is the interface used to connect to a server.

type Connector interface {
    Connect(context.Context) jsonrpc2.Conn
}

type PipeServer

PipeServer is a test server that handles connections over io.Pipes.

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

func NewPipeServer

func NewPipeServer(server jsonrpc2.StreamServer, framer jsonrpc2.Framer) *PipeServer

NewPipeServer returns a test server that can be connected to via io.Pipes.

func (PipeServer) Close

func (l PipeServer) Close() error

func (*PipeServer) Connect

func (s *PipeServer) Connect(ctx context.Context) jsonrpc2.Conn

Connect creates new io.Pipes and binds them to the underlying StreamServer.

type TCPServer

TCPServer is a helper for executing tests against a remote jsonrpc2 connection. Once initialized, its Addr field may be used to connect a jsonrpc2 client.

type TCPServer struct {
    Addr string
    // contains filtered or unexported fields
}

func NewTCPServer

func NewTCPServer(ctx context.Context, server jsonrpc2.StreamServer, framer jsonrpc2.Framer) *TCPServer

NewTCPServer returns a new test server listening on local tcp port and serving incoming jsonrpc2 streams using the provided stream server. It panics on any error.

func (TCPServer) Close

func (l TCPServer) Close() error

func (*TCPServer) Connect

func (s *TCPServer) Connect(_ context.Context) jsonrpc2.Conn

Connect dials the test server and returns a jsonrpc2 Connection that is ready for use.