v2ray_test.go 1.6 KB

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