stream_test.go 1008 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package test
  2. import (
  3. "fmt"
  4. "testing"
  5. "time"
  6. )
  7. // TestPubAndSub 测试发布和订阅
  8. func TestPubAndSub(t *testing.T) {
  9. t.Cleanup(FreeEngine)
  10. UseEngine()
  11. t.Run("publish", func(t *testing.T) {
  12. t.Parallel()
  13. var pub UnitTestPublisher
  14. unitTestPlugin.Publish("test/001", &pub)
  15. })
  16. t.Run("subscribe", func(t *testing.T) {
  17. t.Parallel()
  18. var sub UnitTestSubsciber
  19. sub.tb = t
  20. err := unitTestPlugin.Subscribe("test/001", &sub)
  21. if err != nil {
  22. t.Fatal(err)
  23. } else {
  24. sub.PlayRaw()
  25. }
  26. })
  27. }
  28. func BenchmarkPubAndSub(b *testing.B) {
  29. b.Cleanup(FreeEngine)
  30. UseEngine()
  31. for i := 0; i < 10; i++ {
  32. i := i
  33. go func(i int) {
  34. var pub UnitTestPublisher
  35. unitTestPlugin.Publish(fmt.Sprintf("testb/%d", i), &pub)
  36. }(i)
  37. go b.RunParallel(func(pb *testing.PB) {
  38. var sub UnitTestSubsciber
  39. sub.tb = b
  40. err := unitTestPlugin.Subscribe(fmt.Sprintf("testb/%d", i), &sub)
  41. if err != nil {
  42. // b.Fatal(err)
  43. } else {
  44. sub.PlayRaw()
  45. }
  46. })
  47. }
  48. time.Sleep(time.Second * 10)
  49. }