mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
raft: add new diff
Signed-off-by: Blake Mizerany <blake.mizerany@gmail.com>
This commit is contained in:
parent
c32d34166e
commit
a9c81088f8
51
raft/diff_test.go
Normal file
51
raft/diff_test.go
Normal file
@ -0,0 +1,51 @@
|
||||
package raft
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"os/exec"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func diffu(a, b string) string {
|
||||
if a == b {
|
||||
return ""
|
||||
}
|
||||
aname, bname := mustTemp("base", a), mustTemp("other", b)
|
||||
defer os.Remove(aname)
|
||||
defer os.Remove(bname)
|
||||
cmd := exec.Command("diff", "-u", aname, bname)
|
||||
buf, err := cmd.CombinedOutput()
|
||||
if err != nil {
|
||||
if _, ok := err.(*exec.ExitError); ok {
|
||||
// do nothing
|
||||
return string(buf)
|
||||
}
|
||||
panic(err)
|
||||
}
|
||||
return string(buf)
|
||||
}
|
||||
|
||||
func mustTemp(pre, body string) string {
|
||||
f, err := ioutil.TempFile("", pre)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
_, err = io.Copy(f, strings.NewReader(body))
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
f.Close()
|
||||
return f.Name()
|
||||
}
|
||||
|
||||
func ltoa(l *log) string {
|
||||
s := fmt.Sprintf("committed: %d\n", l.committed)
|
||||
s += fmt.Sprintf("applied: %d\n", l.applied)
|
||||
for i, e := range l.ents {
|
||||
s += fmt.Sprintf("#%d: %+v\n", i, e)
|
||||
}
|
||||
return s
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user