route/vendor/github.com/kohkimakimoto/gluassh/gluassh_test.go

120 lines
2.0 KiB
Go

package gluassh
import(
"testing"
"github.com/yuin/gopher-lua"
"os"
"path/filepath"
)
var keynopass string
var keypass string
func TestRunWithKeynopass(t *testing.T) {
L := lua.NewState()
defer L.Close()
L.PreloadModule("ssh", Loader)
if err := L.DoString(`
local ssh = require "ssh"
conn_user_keynopass = {
host = "192.168.56.81",
port = "22",
user = "user_keynopass",
key = "` + keynopass + `",
}
local ret = ssh.run(conn_user_keynopass, "hostname")
assert(ret.out == "gluassh-test-server\n")
`); err != nil {
t.Error(err)
}
}
func TestRunWithKeynopassSudo(t *testing.T) {
L := lua.NewState()
defer L.Close()
L.PreloadModule("ssh", Loader)
if err := L.DoString(`
local ssh = require "ssh"
conn_user_keynopass = {
host = "192.168.56.81",
port = "22",
user = "user_keynopass",
key = "` + keynopass + `",
}
ret = ssh.run(conn_user_keynopass, {sudo = true}, "whoami")
assert(ret.out == "root\n")
`); err != nil {
t.Error(err)
}
}
func TestRunWithKeypass(t *testing.T) {
L := lua.NewState()
defer L.Close()
L.PreloadModule("ssh", Loader)
if err := L.DoString(`
local ssh = require "ssh"
conn_user_keypass = {
host = "192.168.56.81",
port = "22",
user = "user_keypass",
key = "` + keypass + `",
key_passphrase = "hogehoge",
}
local ret = ssh.run(conn_user_keypass, "hostname")
assert(ret.out == "gluassh-test-server\n")
`); err != nil {
t.Error(err)
}
}
func TestRunWithKeynopassFunc(t *testing.T) {
L := lua.NewState()
defer L.Close()
L.PreloadModule("ssh", Loader)
if err := L.DoString(`
local ssh = require "ssh"
conn_user_keynopass = {
host = "192.168.56.81",
port = "22",
user = "user_keynopass",
key = "` + keynopass + `",
}
local ret = ssh.run(conn_user_keynopass, {}, "hostname", function(stdout, stderr)
print(stdout)
end)
`); err != nil {
t.Error(err)
}
}
func init() {
wd, err := os.Getwd()
if err != nil {
panic(err)
}
keynopass = filepath.Join(wd, "_tests", "keys", "id_rsa.nopass")
keypass = filepath.Join(wd, "_tests", "keys", "id_rsa.pass")
}