mtf_test.go 928 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package lmaxapi
  2. import (
  3. "log"
  4. "testing"
  5. "time"
  6. )
  7. func TestEchoMtf(t *testing.T) {
  8. mtf := NewMtf()
  9. go mtf.Start()
  10. client := NewMtfClient(mtf, time.Second, false, 1024)
  11. go client.Recv(nil)
  12. client.ConnectPrivate()
  13. msg := client.SendMessage(MsgEcho, "echo")
  14. if msg.Err != nil {
  15. panic(msg.Err)
  16. return
  17. }
  18. if msg.Data.(string) != "echo" {
  19. t.Errorf("mtf echo error")
  20. return
  21. }
  22. err := client.Close()
  23. if err != nil {
  24. t.Error(err)
  25. return
  26. }
  27. mtf.Close()
  28. }
  29. func BenchmarkEchoMtf(b *testing.B) {
  30. mtf := NewMtf()
  31. go mtf.Start()
  32. client := NewMtfClient(mtf, time.Millisecond*100, false, 1024)
  33. go client.Recv(nil)
  34. err := client.ConnectPrivate()
  35. if err != nil {
  36. panic(err)
  37. }
  38. log.Println("ready")
  39. for i := 0; i < b.N; i++ {
  40. msg := client.SendMessage(MsgEcho, "echo")
  41. if msg.Err != nil {
  42. panic(msg.Err)
  43. return
  44. }
  45. }
  46. err = client.Close()
  47. if err != nil {
  48. b.Error(err)
  49. return
  50. }
  51. mtf.Close()
  52. }