fix(server): control work connection refill scheduling

This commit is contained in:
fatedier
2026-09-15 13:55:10 +08:00
parent 832df8dff6
commit 53d0a53a36
11 changed files with 3061 additions and 98 deletions
+21
View File
@@ -19,6 +19,8 @@ import (
"testing"
"github.com/stretchr/testify/require"
"github.com/fatedier/frp/pkg/proto/wire"
)
func TestV1MessageTypeIDsAreStable(t *testing.T) {
@@ -53,3 +55,22 @@ func TestMessageTypeMapIsCompleteAndUnique(t *testing.T) {
msgTypes[msgType] = struct{}{}
}
}
func TestWorkConnRequestTypeRoundTrip(t *testing.T) {
in := &ReqWorkConn{WorkConnType: WorkConnTypeReserve, ControlID: 7}
out, err := DecodeV2MessageFrame(mustEncodeV2MessageFrame(t, in))
require.NoError(t, err)
require.Equal(t, in, out)
inNew := &NewWorkConn{RunID: "run", WorkConnType: WorkConnTypeDemand, ControlID: 7}
outNew, err := DecodeV2MessageFrame(mustEncodeV2MessageFrame(t, inNew))
require.NoError(t, err)
require.Equal(t, inNew, outNew)
}
func mustEncodeV2MessageFrame(t *testing.T, m Message) *wire.Frame {
t.Helper()
frame, err := EncodeV2MessageFrame(m)
require.NoError(t, err)
return frame
}