go_dreamfactory/cmd/v2/service/ssh_test.go
2022-08-25 19:22:51 +08:00

54 lines
1009 B
Go

package service
import (
"bytes"
"strings"
"testing"
)
const (
username = "root"
password = "Legu.cc()123"
ip = "10.0.0.9"
port = 22
cmd = "ls"
cmds = "cd /home/liwei/go_dreamfactory&&git pull&&exit" //exit结尾,否则程序不会退出
)
func TestSSHConnect(t *testing.T) {
ciphers := []string{}
ssh := &SSHService{}
session, err := ssh.Connect(username, password, ip, "", port, ciphers)
if err != nil {
t.Fatal(err)
}
defer session.Close()
cmdlist := strings.Split(cmds, "&&")
stdinBuf, err := session.StdinPipe()
if err != nil {
t.Fatal(err)
}
var stdoutBuf, errBuf bytes.Buffer
session.Stdout = &stdoutBuf
session.Stderr = &errBuf
if err := session.Shell(); err != nil {
t.Error(err)
}
for _, c := range cmdlist {
c = c + "\n"
stdinBuf.Write([]byte(c))
}
session.Wait()
t.Logf(stdoutBuf.String() + errBuf.String())
// if err := session.Run(cmd); err != nil {
// t.Logf("run err: %v", err)
// }
// t.Logf("res: %v", session.Stdout)
}