| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- // Package overlaytest provides fakes of overlay.Device for tests that do
- // not want to touch a real tun device or route table.
- package overlaytest
- import (
- "errors"
- "io"
- "net/netip"
- "github.com/slackhq/nebula/routing"
- )
- // NoopTun is an overlay.Device that silently discards every read and write.
- // Useful in tests that need to construct a nebula Interface but do not
- // exercise the datapath.
- type NoopTun struct{}
- func (NoopTun) RoutesFor(addr netip.Addr) routing.Gateways {
- return routing.Gateways{}
- }
- func (NoopTun) Activate() error {
- return nil
- }
- func (NoopTun) Networks() []netip.Prefix {
- return []netip.Prefix{}
- }
- func (NoopTun) Name() string {
- return "noop"
- }
- func (NoopTun) Read([]byte) (int, error) {
- return 0, nil
- }
- func (NoopTun) Write([]byte) (int, error) {
- return 0, nil
- }
- func (NoopTun) SupportsMultiqueue() bool {
- return false
- }
- func (NoopTun) NewMultiQueueReader() (io.ReadWriteCloser, error) {
- return nil, errors.New("unsupported")
- }
- func (NoopTun) Close() error {
- return nil
- }
|