v2ray_test.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package core_test
  2. import (
  3. "testing"
  4. proto "github.com/golang/protobuf/proto"
  5. . "v2ray.com/core"
  6. "v2ray.com/core/app/dispatcher"
  7. "v2ray.com/core/app/proxyman"
  8. "v2ray.com/core/common"
  9. "v2ray.com/core/common/dice"
  10. "v2ray.com/core/common/net"
  11. "v2ray.com/core/common/protocol"
  12. "v2ray.com/core/common/serial"
  13. "v2ray.com/core/common/uuid"
  14. _ "v2ray.com/core/main/distro/all"
  15. "v2ray.com/core/proxy/dokodemo"
  16. "v2ray.com/core/proxy/vmess"
  17. "v2ray.com/core/proxy/vmess/outbound"
  18. )
  19. func TestV2RayClose(t *testing.T) {
  20. port := net.Port(dice.RollUint16())
  21. userId := uuid.New()
  22. config := &Config{
  23. App: []*serial.TypedMessage{
  24. serial.ToTypedMessage(&dispatcher.Config{}),
  25. serial.ToTypedMessage(&proxyman.InboundConfig{}),
  26. serial.ToTypedMessage(&proxyman.OutboundConfig{}),
  27. },
  28. Inbound: []*InboundHandlerConfig{
  29. {
  30. ReceiverSettings: serial.ToTypedMessage(&proxyman.ReceiverConfig{
  31. PortRange: net.SinglePortRange(port),
  32. Listen: net.NewIPOrDomain(net.LocalHostIP),
  33. }),
  34. ProxySettings: serial.ToTypedMessage(&dokodemo.Config{
  35. Address: net.NewIPOrDomain(net.LocalHostIP),
  36. Port: uint32(0),
  37. NetworkList: &net.NetworkList{
  38. Network: []net.Network{net.Network_TCP, net.Network_UDP},
  39. },
  40. }),
  41. },
  42. },
  43. Outbound: []*OutboundHandlerConfig{
  44. {
  45. ProxySettings: serial.ToTypedMessage(&outbound.Config{
  46. Receiver: []*protocol.ServerEndpoint{
  47. {
  48. Address: net.NewIPOrDomain(net.LocalHostIP),
  49. Port: uint32(0),
  50. User: []*protocol.User{
  51. {
  52. Account: serial.ToTypedMessage(&vmess.Account{
  53. Id: userId.String(),
  54. }),
  55. },
  56. },
  57. },
  58. },
  59. }),
  60. },
  61. },
  62. }
  63. cfgBytes, err := proto.Marshal(config)
  64. common.Must(err)
  65. server, err := StartInstance("protobuf", cfgBytes)
  66. common.Must(err)
  67. server.Close()
  68. }