diff --git a/proxy/vmess/protocol/user/testing/mocks/static_userset.go b/proxy/vmess/protocol/user/testing/mocks/static_userset.go new file mode 100644 index 00000000..faa9a648 --- /dev/null +++ b/proxy/vmess/protocol/user/testing/mocks/static_userset.go @@ -0,0 +1,29 @@ +package mocks + +import ( + "github.com/v2ray/v2ray-core/proxy/vmess/config" +) + +type StaticUser struct { + id *config.ID +} + +func (this *StaticUser) ID() *config.ID { + return this.id +} + +func (this *StaticUser) Level() config.UserLevel { + return config.UserLevelUntrusted +} + +type StaticUserSet struct { +} + +func (us *StaticUserSet) AddUser(user config.User) error { + return nil +} + +func (us *StaticUserSet) GetUser(userhash []byte) (config.User, int64, bool) { + id, _ := config.NewID("703e9102-eb57-499c-8b59-faf4f371bb21") + return &StaticUser{id: id}, 0, true +} diff --git a/proxy/vmess/protocol/vmess_fuzz_test.go b/proxy/vmess/protocol/vmess_fuzz_test.go new file mode 100644 index 00000000..83bb086b --- /dev/null +++ b/proxy/vmess/protocol/vmess_fuzz_test.go @@ -0,0 +1,15 @@ +package protocol + +import ( + "crypto/rand" + "testing" + + "github.com/v2ray/v2ray-core/proxy/vmess/protocol/user/testing/mocks" +) + +func TestVMessRequestReader(t *testing.T) { + reader := NewVMessRequestReader(&mocks.StaticUserSet{}) + for i := 0; i < 10000000; i++ { + reader.Read(rand.Reader) + } +}