udpcollect_test.go 670 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package udpcollect
  2. import (
  3. "bytes"
  4. "net"
  5. "testing"
  6. "time"
  7. )
  8. func TestUDPCollect(t *testing.T) {
  9. count := 0
  10. data := []byte("hello world")
  11. collect, err := New("unixgram:///tmp/test.sock", 2, func(p []byte) error {
  12. count++
  13. if !bytes.Equal(p, data) {
  14. t.Errorf("invalid p: %s", p)
  15. }
  16. return nil
  17. })
  18. if err != nil {
  19. t.Fatal(err)
  20. }
  21. if err := collect.Start(); err != nil {
  22. t.Fatal(err)
  23. }
  24. conn, err := net.DialTimeout("unixgram", "/tmp/test.sock", time.Second)
  25. if err != nil {
  26. t.Fatal(err)
  27. }
  28. for i := 0; i < 20; i++ {
  29. conn.Write(data)
  30. }
  31. time.Sleep(time.Second)
  32. collect.Close()
  33. if count != 20 {
  34. t.Errorf("wrong get %d != 20", count)
  35. }
  36. }