. "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/pivotal-golang/lager" "github.com/pivotal-golang/lager/lagertest" "golang.org/x/crypto/ssh" ) var _ = Describe("DirectTcpipChannelHandler", func() { var ( sshd *daemon.Daemon client *ssh.Client logger *lagertest.TestLogger serverSSHConfig *ssh.ServerConfig handler *fake_handlers.FakeNewChannelHandler testHandler *handlers.DirectTcpipChannelHandler testDialer *fakes.FakeDialer echoHandler *fake_server.FakeConnectionHandler echoServer *server.Server echoAddress string ) BeforeEach(func() { logger = lagertest.NewTestLogger("test") echoHandler = &fake_server.FakeConnectionHandler{} echoHandler.HandleConnectionStub = func(conn net.Conn) { io.Copy(conn, conn) conn.Close()
}) It("gets forwarded to the daemon", func() { _, _, err := client.OpenChannel("test", nil) Expect(err).To(Equal(&ssh.OpenChannelError{Reason: ssh.Prohibited, Message: "not now"})) }) }) }) Describe("target requests to client", func() { var ( connectionHandler *server_fakes.FakeConnectionHandler target *server.Server listener net.Listener targetAddress string clientConn ssh.Conn clientChannels <-chan ssh.NewChannel clientRequests <-chan *ssh.Request ) BeforeEach(func() { var err error listener, err = net.Listen("tcp", "127.0.0.1:0") Expect(err).NotTo(HaveOccurred()) targetAddress = listener.Addr().String() connectionHandler = &server_fakes.FakeConnectionHandler{} })
It("sends keep alive messages at the expected interval", func() { times := <-timesCh Expect(times[2]).To(BeTemporally("~", times[0].Add(200*time.Millisecond), 100*time.Millisecond)) }) }) }) Describe("LocalPortForward", func() { var ( opts *options.SSHOptions localForwardError error echoAddress string echoListener *fake_net.FakeListener echoHandler *fake_server.FakeConnectionHandler echoServer *server.Server localAddress string realLocalListener net.Listener fakeLocalListener *fake_net.FakeListener ) BeforeEach(func() { logger := lagertest.NewTestLogger("test") var err error realLocalListener, err = net.Listen("tcp", "127.0.0.1:0") Expect(err).NotTo(HaveOccurred()) localAddress = realLocalListener.Addr().String()
"github.com/cloudfoundry-incubator/diego-ssh/test_helpers" "github.com/cloudfoundry-incubator/diego-ssh/test_helpers/fake_net" "github.com/pivotal-golang/lager" "github.com/pivotal-golang/lager/lagertest" "github.com/tedsuo/ifrit" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/onsi/gomega/gbytes" ) var _ = Describe("Server", func() { var ( logger lager.Logger srv *server.Server handler *fakes.FakeConnectionHandler address string ) BeforeEach(func() { handler = &fakes.FakeConnectionHandler{} address = fmt.Sprintf("127.0.0.1:%d", 7001+GinkgoParallelNode()) logger = lagertest.NewTestLogger("test") }) Describe("Run", func() { var process ifrit.Process BeforeEach(func() { srv = server.NewServer(logger, address, handler)