client_test.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package client
  2. import (
  3. "net"
  4. "sync"
  5. "testing"
  6. "github.com/cnlh/nps/lib/common"
  7. conn2 "github.com/cnlh/nps/lib/conn"
  8. "github.com/cnlh/nps/lib/file"
  9. )
  10. func TestConfig(t *testing.T) {
  11. conn, err := net.Dial("tcp", "127.0.0.1:8284")
  12. if err != nil {
  13. t.Fail()
  14. }
  15. c := conn2.NewConn(conn)
  16. c.SetAlive("tcp")
  17. if _, err := c.Write([]byte(common.Getverifyval("123"))); err != nil {
  18. t.Fail()
  19. }
  20. c.WriteConfig()
  21. config := &file.Config{
  22. U: "1",
  23. P: "2",
  24. Compress: "snappy",
  25. Crypt: true,
  26. CompressEncode: 0,
  27. CompressDecode: 0,
  28. }
  29. host := &file.Host{
  30. Host: "a.o.com",
  31. Target: "127.0.0.1:8080",
  32. HeaderChange: "",
  33. HostChange: "",
  34. Flow: nil,
  35. Client: nil,
  36. Remark: "111",
  37. NowIndex: 0,
  38. TargetArr: nil,
  39. NoStore: false,
  40. RWMutex: sync.RWMutex{},
  41. }
  42. tunnel := &file.Tunnel{
  43. Port: 9001,
  44. Mode: "tcp",
  45. Target: "127.0.0.1:8082",
  46. Remark: "333",
  47. }
  48. var b []byte
  49. if b, err = c.ReadLen(16); err != nil {
  50. t.Fail()
  51. }
  52. if _, err := c.SendConfigInfo(config); err != nil {
  53. t.Fail()
  54. }
  55. if !c.GetAddStatus() {
  56. t.Fail()
  57. }
  58. if _, err := c.SendHostInfo(host); err != nil {
  59. t.Fail()
  60. }
  61. if !c.GetAddStatus() {
  62. t.Fail()
  63. }
  64. if _, err := c.SendTaskInfo(tunnel); err != nil {
  65. t.Fail()
  66. }
  67. if !c.GetAddStatus() {
  68. t.Fail()
  69. }
  70. c.Close()
  71. NewRPClient("127.0.0.1:8284", string(b), "tcp").Start()
  72. }