mirror of
https://github.com/golang/go
synced 2024-11-19 15:54:46 -07:00
archive/tar: adjust bytediff to print full context
Since test files don't exceed 10KiB, print the full context of the diff, including bytes that are equal. Also, fix the labels for got and want; they were backwards before. Change-Id: Ibac022e5f988d26812c3f75b643cae8b95603fc9 Reviewed-on: https://go-review.googlesource.com/55151 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
7ae9561610
commit
01385b1bb6
@ -19,28 +19,33 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Render a pseudo-diff between two blocks of bytes.
|
func bytediff(a, b []byte) string {
|
||||||
func bytediff(a []byte, b []byte) (s string) {
|
const (
|
||||||
var ax = strings.Split(hex.Dump(a), "\n")
|
uniqueA = "- "
|
||||||
var bx = strings.Split(hex.Dump(b), "\n")
|
uniqueB = "+ "
|
||||||
for i := 0; i < len(ax) || i < len(bx); i++ {
|
identity = " "
|
||||||
var sa, sb = "", ""
|
)
|
||||||
if i < len(ax) {
|
var ss []string
|
||||||
sa = ax[i]
|
sa := strings.Split(strings.TrimSpace(hex.Dump(a)), "\n")
|
||||||
}
|
sb := strings.Split(strings.TrimSpace(hex.Dump(b)), "\n")
|
||||||
if i < len(bx) {
|
for len(sa) > 0 && len(sb) > 0 {
|
||||||
sb = bx[i]
|
if sa[0] == sb[0] {
|
||||||
}
|
ss = append(ss, identity+sa[0])
|
||||||
if sa != sb {
|
} else {
|
||||||
if len(sa) > 0 {
|
ss = append(ss, uniqueA+sa[0])
|
||||||
s += "+" + sa + "\n"
|
ss = append(ss, uniqueB+sb[0])
|
||||||
}
|
|
||||||
if len(sb) > 0 {
|
|
||||||
s += "-" + sb + "\n"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
sa, sb = sa[1:], sb[1:]
|
||||||
}
|
}
|
||||||
return s
|
for len(sa) > 0 {
|
||||||
|
ss = append(ss, uniqueA+sa[0])
|
||||||
|
sa = sa[1:]
|
||||||
|
}
|
||||||
|
for len(sb) > 0 {
|
||||||
|
ss = append(ss, uniqueB+sb[0])
|
||||||
|
sb = sb[1:]
|
||||||
|
}
|
||||||
|
return strings.Join(ss, "\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestWriter(t *testing.T) {
|
func TestWriter(t *testing.T) {
|
||||||
@ -250,7 +255,7 @@ func TestWriter(t *testing.T) {
|
|||||||
}
|
}
|
||||||
got := buf.Bytes()
|
got := buf.Bytes()
|
||||||
if !bytes.Equal(want, got) {
|
if !bytes.Equal(want, got) {
|
||||||
t.Fatalf("incorrect result: (-=want, +=got)\n%v", bytediff(want, got))
|
t.Fatalf("incorrect result: (-got +want)\n%v", bytediff(got, want))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user