Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(297)

Delta Between Two Patch Sets: ssh/test/session_test.go

Issue 6601043: code review 6601043: go.crypto/ssh: new package: sshtest (Closed)
Left Patch Set: diff -r aab880ed1ec2 https://code.google.com/p/go.crypto Created 11 years, 5 months ago
Right Patch Set: diff -r aab880ed1ec2 https://code.google.com/p/go.crypto Created 11 years, 5 months ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
Right: Side by side diff | Download
« no previous file with change/comment | « ssh/test/doc.go ('k') | ssh/test/tcpip_test.go » ('j') | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
(no file at all)
1 // Copyright 2012 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 // +build !windows
6
7 package test
8
9 // Session functional tests.
10
11 import (
12 "bytes"
13 "io"
14 "testing"
15 )
16
17 func TestRunCommandSuccess(t *testing.T) {
18 server := newServer(t)
19 defer server.Shutdown()
20 conn := server.Dial()
21 defer conn.Close()
22
23 session, err := conn.NewSession()
24 if err != nil {
25 t.Fatalf("session failed: %v", err)
26 }
27 defer session.Close()
28 err = session.Run("true")
29 if err != nil {
30 t.Fatalf("session failed: %v", err)
31 }
32 }
33
34 func TestRunCommandFailed(t *testing.T) {
35 server := newServer(t)
36 defer server.Shutdown()
37 conn := server.Dial()
38 defer conn.Close()
39
40 session, err := conn.NewSession()
41 if err != nil {
42 t.Fatalf("session failed: %v", err)
43 }
44 defer session.Close()
45 err = session.Run(`bash -c "kill -9 $$"`)
46 if err == nil {
47 t.Fatalf("session succeeded: %v", err)
48 }
49 }
50
51 func TestRunCommandWeClosed(t *testing.T) {
52 server := newServer(t)
53 defer server.Shutdown()
54 conn := server.Dial()
55 defer conn.Close()
56
57 session, err := conn.NewSession()
58 if err != nil {
59 t.Fatalf("session failed: %v", err)
60 }
61 err = session.Shell()
62 if err != nil {
63 t.Fatalf("shell failed: %v", err)
64 }
65 err = session.Close()
66 if err != nil {
67 t.Fatalf("shell failed: %v", err)
68 }
69 }
70
71 func TestFuncLargeRead(t *testing.T) {
72 server := newServer(t)
73 defer server.Shutdown()
74 conn := server.Dial()
75 defer conn.Close()
76
77 session, err := conn.NewSession()
78 if err != nil {
79 t.Fatalf("unable to create new session: %s", err)
80 }
81
82 stdout, err := session.StdoutPipe()
83 if err != nil {
84 t.Fatalf("unable to acquire stdout pipe: %s", err)
85 }
86
87 err = session.Start("dd if=/dev/urandom bs=2048 count=1")
88 if err != nil {
89 t.Fatalf("unable to execute remote command: %s", err)
90 }
91
92 buf := new(bytes.Buffer)
93 n, err := io.Copy(buf, stdout)
94 if err != nil {
95 t.Fatalf("error reading from remote stdout: %s", err)
96 }
97
98 if n != 2048 {
99 t.Fatalf("Expected %d bytes but read only %d from remote command ", 2048, n)
100 }
101 }
LEFTRIGHT

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b