test: enhance testing and internal API robustness (#269)

* test: support ipv6

* chore: update

Signed-off-by: appleboy <appleboy.tw@gmail.com>

* chore: update

Signed-off-by: appleboy <appleboy.tw@gmail.com>

---------

Signed-off-by: appleboy <appleboy.tw@gmail.com>
This commit is contained in:
Bo-Yi Wu 2024-03-16 11:29:44 +08:00 committed by GitHub
parent 7d0a886109
commit cafc139713
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 30 additions and 31 deletions

View File

@ -27,7 +27,9 @@ jobs:
testing:
runs-on: ubuntu-latest
container: golang:1.21-alpine
container:
image: golang:1.21-alpine
options: --sysctl net.ipv6.conf.all.disable_ipv6=0
steps:
- name: Checkout repository
uses: actions/checkout@v3

View File

@ -432,7 +432,6 @@ func getHostPublicKeyFile(keypath string) (ssh.PublicKey, error) {
}
pubkey, _, _, _, err = ssh.ParseAuthorizedKey(buf)
if err != nil {
return nil, err
}
@ -965,33 +964,31 @@ func TestSudoCommand(t *testing.T) {
assert.Equal(t, unindent(expected), unindent(buffer.String()))
}
// TODO: TestCommandWithIPv6 is not working on github actions.
// func TestCommandWithIPv6(t *testing.T) {
// var (
// buffer bytes.Buffer
// expected = `
// ======CMD======
// whoami
// ======END======
// out: drone-scp
// `
// )
func TestCommandWithIPv6(t *testing.T) {
var (
buffer bytes.Buffer
expected = `
======CMD======
whoami
======END======
out: drone-scp
`
)
// plugin := Plugin{
// Config: Config{
// Host: []string{"::1"},
// Username: "drone-scp",
// Port: 22,
// KeyPath: "./tests/.ssh/id_rsa",
// Script: []string{
// "whoami",
// },
// Protocol: easyssh.PROTOCOL_TCP6,
// CommandTimeout: 10 * time.Second,
// },
// Writer: &buffer,
// }
// assert.Nil(t, plugin.Exec())
// assert.Equal(t, unindent(expected), unindent(buffer.String()))
// }
plugin := Plugin{
Config: Config{
Host: []string{"::1"},
Username: "drone-scp",
Port: 22,
KeyPath: "./tests/.ssh/id_rsa",
Script: []string{
"whoami",
},
Protocol: easyssh.PROTOCOL_TCP6,
CommandTimeout: 10 * time.Second,
},
Writer: &buffer,
}
assert.Nil(t, plugin.Exec())
assert.Equal(t, unindent(expected), unindent(buffer.String()))
}