avro_test.go 823 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package querylog
  2. import (
  3. "encoding/json"
  4. "io"
  5. "os"
  6. "testing"
  7. "time"
  8. )
  9. func TestAvro(t *testing.T) {
  10. tmppath, err := os.MkdirTemp("", "geodns.avro")
  11. if err != nil {
  12. t.Fatalf("could not create temp dir: %s", err)
  13. }
  14. lg, err := NewAvroLogger(tmppath, 5000000, 4*time.Second)
  15. if err != nil {
  16. t.Log(err)
  17. t.FailNow()
  18. }
  19. dataFh, err := os.Open("testdata/queries.log")
  20. if err != nil {
  21. t.Log("no test data available")
  22. t.SkipNow()
  23. }
  24. dec := json.NewDecoder(dataFh)
  25. count := 0
  26. for {
  27. e := Entry{}
  28. err := dec.Decode(&e)
  29. if err != nil {
  30. if err == io.EOF {
  31. break
  32. }
  33. t.Logf("could not decode test data: %s", err)
  34. continue
  35. }
  36. count++
  37. lg.Write(&e)
  38. }
  39. t.Logf("Write count: %d", count)
  40. // time.Sleep(time.Second * 2)
  41. err = lg.Close()
  42. if err != nil {
  43. t.Log(err)
  44. t.Fail()
  45. }
  46. }