event_test.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package fileSystem
  2. import (
  3. "testing"
  4. )
  5. // TestEventQueue tests a queue with capacity = 100
  6. // Add 200 events into that queue, and test if the
  7. // previous 100 events have been swapped out.
  8. func TestEventQueue(t *testing.T) {
  9. eh := newEventHistory(100)
  10. // Add
  11. for i := 0; i < 200; i++ {
  12. e := newEvent(Create, "/foo", uint64(i), 0)
  13. eh.addEvent(e)
  14. }
  15. // Test
  16. j := 100
  17. for i := eh.Queue.front; i != eh.Queue.back; i = (i + 1) % eh.Queue.capacity {
  18. e := eh.Queue.events[i]
  19. if e.Index != uint64(j) {
  20. t.Fatalf("queue error!")
  21. }
  22. j++
  23. }
  24. }
  25. func TestScanHistory(t *testing.T) {
  26. eh := newEventHistory(100)
  27. // Add
  28. eh.addEvent(newEvent(Create, "/foo", 1, 0))
  29. eh.addEvent(newEvent(Create, "/foo/bar", 2, 0))
  30. eh.addEvent(newEvent(Create, "/foo/foo", 3, 0))
  31. eh.addEvent(newEvent(Create, "/foo/bar/bar", 4, 0))
  32. eh.addEvent(newEvent(Create, "/foo/foo/foo", 5, 0))
  33. e, err := eh.scan("/foo", 1)
  34. if err != nil || e.Index != 1 {
  35. t.Fatalf("scan error [/foo] [1] %v", e.Index)
  36. }
  37. e, err = eh.scan("/foo/bar", 1)
  38. if err != nil || e.Index != 2 {
  39. t.Fatalf("scan error [/foo/bar] [2] %v", e.Index)
  40. }
  41. e, err = eh.scan("/foo/bar", 3)
  42. if err != nil || e.Index != 4 {
  43. t.Fatalf("scan error [/foo/bar/bar] [4] %v", e.Index)
  44. }
  45. e, err = eh.scan("/foo/bar", 6)
  46. if e != nil {
  47. t.Fatalf("bad index shoud reuturn nil")
  48. }
  49. }