template_test.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package ci
  2. import (
  3. "os"
  4. "testing"
  5. "time"
  6. "github.com/fatedier/frp/tests/config"
  7. "github.com/fatedier/frp/tests/consts"
  8. "github.com/fatedier/frp/tests/util"
  9. "github.com/stretchr/testify/assert"
  10. )
  11. const FRPS_TEMPLATE_CONF = `
  12. [common]
  13. bind_addr = 0.0.0.0
  14. bind_port = {{ .Envs.SERVER_PORT }}
  15. log_file = console
  16. # debug, info, warn, error
  17. log_level = debug
  18. token = 123456
  19. `
  20. const FRPC_TEMPLATE_CONF = `
  21. [common]
  22. server_addr = 127.0.0.1
  23. server_port = 20000
  24. log_file = console
  25. # debug, info, warn, error
  26. log_level = debug
  27. token = {{ .Envs.FRP_TOKEN }}
  28. [tcp]
  29. type = tcp
  30. local_port = 10701
  31. remote_port = {{ .Envs.TCP_REMOTE_PORT }}
  32. `
  33. func TestConfTemplate(t *testing.T) {
  34. assert := assert.New(t)
  35. frpsCfgPath, err := config.GenerateConfigFile(consts.FRPS_NORMAL_CONFIG, FRPS_TEMPLATE_CONF)
  36. if assert.NoError(err) {
  37. defer os.Remove(frpsCfgPath)
  38. }
  39. frpcCfgPath, err := config.GenerateConfigFile(consts.FRPC_NORMAL_CONFIG, FRPC_TEMPLATE_CONF)
  40. if assert.NoError(err) {
  41. defer os.Remove(frpcCfgPath)
  42. }
  43. frpsProcess := util.NewProcess("env", []string{"SERVER_PORT=20000", consts.FRPS_BIN_PATH, "-c", frpsCfgPath})
  44. err = frpsProcess.Start()
  45. if assert.NoError(err) {
  46. defer frpsProcess.Stop()
  47. }
  48. time.Sleep(200 * time.Millisecond)
  49. frpcProcess := util.NewProcess("env", []string{"FRP_TOKEN=123456", "TCP_REMOTE_PORT=20801", consts.FRPC_BIN_PATH, "-c", frpcCfgPath})
  50. err = frpcProcess.Start()
  51. if assert.NoError(err) {
  52. defer frpcProcess.Stop()
  53. }
  54. time.Sleep(500 * time.Millisecond)
  55. // test tcp1
  56. res, err := util.SendTcpMsg("127.0.0.1:20801", consts.TEST_TCP_ECHO_STR)
  57. assert.NoError(err)
  58. assert.Equal(consts.TEST_TCP_ECHO_STR, res)
  59. }