feat(socket-proxy): implement Docker socket proxy and related configurations

- Updated Dockerfile and Makefile for socket-proxy build.
- Modified go.mod to include necessary dependencies.
- Updated CI workflows for socket-proxy integration.
- Better module isolation
- Code refactor
This commit is contained in:
yusing
2025-05-10 09:47:03 +08:00
parent 4ddfb48b9d
commit 8fe94d6d14
38 changed files with 658 additions and 523 deletions

View File

@@ -4,12 +4,21 @@ import (
"testing"
"time"
"github.com/stretchr/testify/require"
. "github.com/yusing/go-proxy/internal/utils/strutils"
expect "github.com/yusing/go-proxy/internal/utils/testing"
)
func mustParseTime(t *testing.T, layout, value string) time.Time {
t.Helper()
time, err := time.Parse(layout, value)
if err != nil {
t.Fatalf("failed to parse time: %s", err)
}
return time
}
func TestFormatTime(t *testing.T) {
now := expect.Must(time.Parse(time.RFC3339, "2021-06-15T12:30:30Z"))
now := mustParseTime(t, time.RFC3339, "2021-06-15T12:30:30Z")
tests := []struct {
name string
@@ -84,9 +93,9 @@ func TestFormatTime(t *testing.T) {
result := FormatTimeWithReference(tt.time, now)
if tt.expectedLength > 0 {
expect.Equal(t, len(result), tt.expectedLength, result)
require.Equal(t, tt.expectedLength, len(result), result)
} else {
expect.Equal(t, result, tt.expected)
require.Equal(t, tt.expected, result)
}
})
}
@@ -173,7 +182,7 @@ func TestFormatDuration(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
result := FormatDuration(tt.duration)
expect.Equal(t, result, tt.expected)
require.Equal(t, tt.expected, result)
})
}
}
@@ -203,7 +212,7 @@ func TestFormatLastSeen(t *testing.T) {
result := FormatLastSeen(tt.time)
if tt.name == "zero time" {
expect.Equal(t, result, tt.expected)
require.Equal(t, tt.expected, result)
} else {
// Just make sure it's not "never", the actual formatting is tested in TestFormatTime
if result == "never" {
@@ -290,7 +299,7 @@ func TestFormatByteSize(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
result := FormatByteSize(tt.size)
expect.Equal(t, result, tt.expected)
require.Equal(t, tt.expected, result)
})
}
}

View File

@@ -4,8 +4,8 @@ import (
"strings"
"testing"
"github.com/stretchr/testify/require"
. "github.com/yusing/go-proxy/internal/utils/strutils"
. "github.com/yusing/go-proxy/internal/utils/testing"
)
var alphaNumeric = func() string {
@@ -31,8 +31,8 @@ func TestSplit(t *testing.T) {
for sep, rsep := range tests {
t.Run(sep, func(t *testing.T) {
expected := strings.Split(alphaNumeric, sep)
ExpectEqual(t, SplitRune(alphaNumeric, rsep), expected)
ExpectEqual(t, JoinRune(expected, rsep), alphaNumeric)
require.Equal(t, expected, SplitRune(alphaNumeric, rsep))
require.Equal(t, alphaNumeric, JoinRune(expected, rsep))
})
}
}