oracle_test.go 951 B

1234567891011121314151617181920212223242526272829303132333435
  1. package fs
  2. import (
  3. "testing"
  4. "github.com/google/go-cmp/cmp"
  5. )
  6. func TestOracle(t *testing.T) {
  7. var message_nums = []int{0, 1, 2, 3, 4}
  8. var results []MailFile
  9. clock := mockClock{}
  10. oracle := newOracle(clock)
  11. for range message_nums {
  12. req := NewMailFileRequest()
  13. oracle <- req
  14. results = append(results, req.Response())
  15. }
  16. for i := range message_nums[1:] {
  17. timestamp_c := results[0].timestamp != results[i].timestamp
  18. pid_c := results[0].pid != results[i].pid
  19. hostname_c := results[0].hostname != results[i].hostname
  20. if timestamp_c || pid_c || hostname_c {
  21. t.Logf("timestamp_c: %+v\n", timestamp_c)
  22. t.Logf("pid_c: %+v\n", pid_c)
  23. t.Logf("hostname_c: %+v\n", hostname_c)
  24. t.Errorf("Mismatching timestamps, %+v\n", cmp.Diff(results[0], results[i], cmp.AllowUnexported(MailFile{})))
  25. }
  26. if results[i].progressive != i {
  27. t.Errorf("Unexpected progressive -> have: %d | expect: %d\n", results[i].progressive, i)
  28. }
  29. }
  30. }