log_test.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package migrate
  2. import (
  3. "fmt"
  4. "net/url"
  5. "reflect"
  6. "testing"
  7. "time"
  8. "github.com/coreos/etcd/etcdserver"
  9. )
  10. func TestNewCommand(t *testing.T) {
  11. entries, err := DecodeLog4FromFile("fixtures/cmdlog")
  12. if err != nil {
  13. t.Errorf("read log file error: %v", err)
  14. }
  15. zeroTime, err := time.Parse(time.RFC3339, "1969-12-31T16:00:00-08:00")
  16. if err != nil {
  17. t.Errorf("couldn't create time: %v", err)
  18. }
  19. m := etcdserver.NewMember("alice", []url.URL{{Scheme: "http", Host: "127.0.0.1:7001"}}, etcdDefaultClusterName, nil)
  20. m.ClientURLs = []string{"http://127.0.0.1:4001"}
  21. tests := []interface{}{
  22. &JoinCommand{"alice", "http://127.0.0.1:7001", "http://127.0.0.1:4001", *m},
  23. &NOPCommand{},
  24. &NOPCommand{},
  25. &RemoveCommand{"alice", 0xe52ada62956ff923},
  26. &CompareAndDeleteCommand{"foo", "baz", 9},
  27. &CompareAndSwapCommand{"foo", "bar", zeroTime, "baz", 9},
  28. &CreateCommand{"foo", "bar", zeroTime, true, true},
  29. &DeleteCommand{"foo", true, true},
  30. &SetCommand{"foo", "bar", zeroTime, true},
  31. &SyncCommand{zeroTime},
  32. &UpdateCommand{"foo", "bar", zeroTime},
  33. }
  34. raftMap := make(map[string]uint64)
  35. for i, test := range tests {
  36. e := entries[i]
  37. cmd, err := NewCommand4(e.GetCommandName(), e.GetCommand(), raftMap)
  38. if err != nil {
  39. t.Errorf("#%d: %v", i, err)
  40. continue
  41. }
  42. if !reflect.DeepEqual(cmd, test) {
  43. if i == 5 {
  44. fmt.Println(cmd.(*CompareAndSwapCommand).ExpireTime.Location())
  45. }
  46. t.Errorf("#%d: cmd = %+v, want %+v", i, cmd, test)
  47. }
  48. }
  49. }