wal: use bytes.Equal, other minor updates

- Replace reflect.Equal with bytes.Equal where possible
- Remove some TODOs
- Some minor simplifications
This commit is contained in:
Gyu-Ho Lee 2016-06-13 01:33:53 -07:00
parent f25b3dbfc8
commit b4aa4607cb
3 changed files with 8 additions and 9 deletions

View File

@ -15,13 +15,13 @@
package wal package wal
import ( import (
"bytes"
"errors" "errors"
"fmt" "fmt"
"hash/crc32" "hash/crc32"
"io" "io"
"os" "os"
"path" "path"
"reflect"
"sync" "sync"
"time" "time"
@ -247,7 +247,7 @@ func (w *WAL) ReadAll() (metadata []byte, state raftpb.HardState, ents []raftpb.
case stateType: case stateType:
state = mustUnmarshalState(rec.Data) state = mustUnmarshalState(rec.Data)
case metadataType: case metadataType:
if metadata != nil && !reflect.DeepEqual(metadata, rec.Data) { if metadata != nil && !bytes.Equal(metadata, rec.Data) {
state.Reset() state.Reset()
return nil, state, nil, ErrMetadataConflict return nil, state, nil, ErrMetadataConflict
} }

View File

@ -46,7 +46,7 @@ func benchmarkWriteEntry(b *testing.B, size int, batch int) {
b.Fatalf("err = %v, want nil", err) b.Fatalf("err = %v, want nil", err)
} }
data := make([]byte, size) data := make([]byte, size)
for i := 0; i < len(data); i++ { for i := 0; i < size; i++ {
data[i] = byte(i) data[i] = byte(i)
} }
e := &raftpb.Entry{Data: data} e := &raftpb.Entry{Data: data}

View File

@ -78,7 +78,7 @@ func TestNew(t *testing.T) {
t.Fatalf("err = %v, want nil", err) t.Fatalf("err = %v, want nil", err)
} }
e.flush() e.flush()
if !reflect.DeepEqual(gd, wb.Bytes()) { if !bytes.Equal(gd, wb.Bytes()) {
t.Errorf("data = %v, want %v", gd, wb.Bytes()) t.Errorf("data = %v, want %v", gd, wb.Bytes())
} }
} }
@ -165,8 +165,7 @@ func TestCut(t *testing.T) {
defer w.Close() defer w.Close()
state := raftpb.HardState{Term: 1} state := raftpb.HardState{Term: 1}
// TODO(unihorn): remove this when cut can operate on an empty file if err = w.Save(state, nil); err != nil {
if err = w.Save(state, []raftpb.Entry{{}}); err != nil {
t.Fatal(err) t.Fatal(err)
} }
if err = w.cut(); err != nil { if err = w.cut(); err != nil {
@ -248,7 +247,7 @@ func TestRecover(t *testing.T) {
t.Fatal(err) t.Fatal(err)
} }
if !reflect.DeepEqual(metadata, []byte("metadata")) { if !bytes.Equal(metadata, []byte("metadata")) {
t.Errorf("metadata = %s, want %s", metadata, "metadata") t.Errorf("metadata = %s, want %s", metadata, "metadata")
} }
if !reflect.DeepEqual(entries, ents) { if !reflect.DeepEqual(entries, ents) {
@ -375,7 +374,7 @@ func TestRecoverAfterCut(t *testing.T) {
t.Errorf("#%d: err = %v, want nil", i, err) t.Errorf("#%d: err = %v, want nil", i, err)
continue continue
} }
if !reflect.DeepEqual(metadata, []byte("metadata")) { if !bytes.Equal(metadata, []byte("metadata")) {
t.Errorf("#%d: metadata = %s, want %s", i, metadata, "metadata") t.Errorf("#%d: metadata = %s, want %s", i, metadata, "metadata")
} }
for j, e := range entries { for j, e := range entries {
@ -612,7 +611,7 @@ func TestRestartCreateWal(t *testing.T) {
// make temporary directory so it looks like initialization is interrupted // make temporary directory so it looks like initialization is interrupted
tmpdir := path.Clean(p) + ".tmp" tmpdir := path.Clean(p) + ".tmp"
if err = os.Mkdir(p+".tmp", 0755); err != nil { if err = os.Mkdir(tmpdir, fileutil.PrivateDirMode); err != nil {
t.Fatal(err) t.Fatal(err)
} }
if _, err = os.OpenFile(path.Join(tmpdir, "test"), os.O_WRONLY|os.O_CREATE, fileutil.PrivateFileMode); err != nil { if _, err = os.OpenFile(path.Join(tmpdir, "test"), os.O_WRONLY|os.O_CREATE, fileutil.PrivateFileMode); err != nil {