chore(protocol): improve IPv6 address. (#268)

* docs: improve documentation and configuration handling

- Clarify valid values for the IP protocol in usage messages for both main application and proxy settings

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

* test: improve IPv6 command execution tests

- Add a new test function `TestCommandWithIPv6` to check command execution with an IPv6 address
- Initialize test variables and expected output for the IPv6 command test
- Set up a `Plugin` struct with IPv6 host, user, port, key path, script, and command timeout for testing
- Verify that `plugin.Exec()` returns `nil` (no error) in the IPv6 test
- Assert that the output of the command execution matches the expected output in the IPv6 test

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

* test: enhance test suite and CI robustness

- Add support for IPv6 protocol in `TestCommandWithIPv6` test case in `plugin_test.go`

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

* update

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

* update

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

* update

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

* update

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

* update2

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

* update3

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

* update4

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

* update5

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

* update5

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

* update5

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

---------

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
This commit is contained in:
Bo-Yi Wu
2024-01-21 09:27:49 +08:00
committed by GitHub
parent 91fd4f8071
commit a41d4afc40
4 changed files with 54 additions and 4 deletions
+47 -1
View File
@@ -797,7 +797,8 @@ func TestPlugin_hostPort(t *testing.T) {
name: "different port",
fields: fields{
Config: Config{
Port: 22,
Port: 22,
Protocol: easyssh.PROTOCOL_TCP4,
},
},
args: args{
@@ -806,6 +807,20 @@ func TestPlugin_hostPort(t *testing.T) {
wantHost: "localhost",
wantPort: "443",
},
{
name: "ipv6",
fields: fields{
Config: Config{
Port: 22,
Protocol: easyssh.PROTOCOL_TCP6,
},
},
args: args{
h: "::1",
},
wantHost: "::1",
wantPort: "22",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
@@ -949,3 +964,34 @@ func TestSudoCommand(t *testing.T) {
assert.Nil(t, plugin.Exec())
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
// `
// )
// 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()))
// }