config_test.go 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. package config
  2. import (
  3. "bufio"
  4. "fmt"
  5. "io"
  6. "os"
  7. "path"
  8. "runtime"
  9. "strings"
  10. "testing"
  11. "golang.org/x/crypto/ssh"
  12. )
  13. func getCurrentPath() string {
  14. _, filename, _, _ := runtime.Caller(1)
  15. return path.Dir(filename)
  16. }
  17. func TestGetConfigInfo(t1 *testing.T) {
  18. var config ConfigInfo
  19. config.GetConfigInfo("../../file/test.txt")
  20. fmt.Println(config)
  21. }
  22. func TestReadFile(t1 *testing.T) {
  23. fmt.Println(getCurrentPath())
  24. var config ConfigInfo
  25. //config.GetConfigInfo("../../file/test.txt")
  26. configRet := config.ReadCofing("../../file/test.txt")
  27. fmt.Println(configRet)
  28. fmt.Println("-------------------ParseConfigSql------------------------")
  29. retXugu := config.ParseConfigSql(configRet["xugu"])
  30. retSql := config.ParseConfigSql(configRet["sql"])
  31. for _, v := range retXugu {
  32. fmt.Println("retXugu", v)
  33. }
  34. for _, v := range retSql {
  35. fmt.Println("retSql", v)
  36. }
  37. fmt.Println("------------------ParseGroupCase---------------------------")
  38. var a map[string]string
  39. for _, v := range retXugu {
  40. a = config.ParseGroupCase(v)
  41. fmt.Println("ParseSqlCase:", a)
  42. }
  43. fmt.Println("a", a["port"])
  44. var b map[string]string
  45. for _, v := range retSql {
  46. b = config.ParseGroupCase(v)
  47. fmt.Println("ParseSqlCase:", b)
  48. }
  49. }
  50. var str = ` --删除测试表
  51. DROP TABLE IF EXISTS INTERVAL_TABLE;
  52. --创建表,表列类型时间间隔
  53. !!!
  54. CREATE TABLE INTERVAL_TABLE(
  55. A INTERVAL YEAR,
  56. B INTERVAL MONTH,
  57. C INTERVAL DAY,
  58. D INTERVAL HOUR,
  59. E INTERVAL MINUTE,
  60. F INTERVAL SECOND,
  61. G INTERVAL YEAR TO MONTH,
  62. H INTERVAL DAY TO HOUR,
  63. I INTERVAL DAY TO MINUTE,
  64. J INTERVAL DAY TO SECOND,
  65. K INTERVAL HOUR TO MINUTE,
  66. L INTERVAL HOUR TO SECOND,
  67. M INTERVAL MINUTE TO SECOND);
  68. !!!
  69. --插入数据
  70. !!!
  71. INSERT INTO INTERVAL_TABLE VALUES(
  72. '1',
  73. '2',
  74. '3',
  75. '4',
  76. '5',
  77. '6',
  78. '12-1',
  79. '10 1',
  80. '10 11:01',
  81. '10 10:10:01',
  82. '10:10',
  83. '10:10:10',
  84. '10:10');
  85. !!!
  86. --查询表数据
  87. SELECT * FROM INTERVAL_TABLE;
  88. --删除表
  89. drop table INTERVAL_TABLE;`
  90. func TestAnalysisFile(t1 *testing.T) {
  91. var tests string
  92. var sql string
  93. partTestStepScanner := bufio.NewScanner(strings.NewReader(str))
  94. for partTestStepScanner.Scan() {
  95. partLine := partTestStepScanner.Text()
  96. partLine = strings.TrimSpace(partLine)
  97. if strings.HasPrefix(partLine, "--") {
  98. fmt.Println("检测到--", partLine)
  99. continue
  100. }
  101. if strings.HasPrefix(partLine, "!!!") {
  102. fmt.Println("检测到!!!", partLine)
  103. for partTestStepScanner.Scan() {
  104. partLine := partTestStepScanner.Text()
  105. sql += partLine
  106. fmt.Println("partLine2:", partLine)
  107. }
  108. continue
  109. }
  110. fmt.Println("sql:", sql)
  111. tests = partLine
  112. fmt.Println("tests:", tests)
  113. }
  114. //fmt.Println("tests", tests)
  115. }
  116. func TestName(t *testing.T) {
  117. // 远程SSH服务器地址和端口
  118. sshAddr := "10.28.20.101:22"
  119. // SSH登录用户名
  120. sshUser := "root"
  121. // SSH登录密码或密钥
  122. // 配置SSH客户端
  123. config := &ssh.ClientConfig{
  124. User: sshUser,
  125. Auth: []ssh.AuthMethod{
  126. ssh.Password("Xugu@2023"),
  127. },
  128. HostKeyCallback: ssh.InsecureIgnoreHostKey(),
  129. }
  130. // 连接到远程主机
  131. conn, err := ssh.Dial("tcp", sshAddr, config)
  132. if err != nil {
  133. panic(err)
  134. }
  135. defer conn.Close()
  136. // 创建SSH会话
  137. session, err := conn.NewSession()
  138. if err != nil {
  139. panic(err)
  140. }
  141. defer session.Close()
  142. // 执行远程命令
  143. // 创建输出管道
  144. stdout, err := session.StdoutPipe()
  145. if err != nil {
  146. panic(err)
  147. }
  148. // 启动远程命令
  149. _ = session.Start("pwd")
  150. if err != nil {
  151. panic(err)
  152. }
  153. // 从输出管道读取命令输出
  154. go func() {
  155. _, err := io.Copy(os.Stdout, stdout)
  156. if err != nil {
  157. panic(err)
  158. }
  159. }()
  160. // 等待命令执行完成
  161. err = session.Wait()
  162. if err != nil {
  163. panic(err)
  164. }
  165. }