mirror of
https://github.com/golang/go
synced 2024-11-18 09:04:49 -07:00
encoding/hex: fix Dumper not always closing on Close call
Updates #23574 Change-Id: I1b87390679e0817a2f6e4e5938994ea32df87bd7 Reviewed-on: https://go-review.googlesource.com/107596 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
f83e421268
commit
9db1dd074d
@ -282,10 +282,13 @@ func (h *dumper) Write(data []byte) (n int, err error) {
|
||||
|
||||
func (h *dumper) Close() (err error) {
|
||||
// See the comments in Write() for the details of this format.
|
||||
if h.used == 0 || h.closed {
|
||||
if h.closed {
|
||||
return
|
||||
}
|
||||
h.closed = true
|
||||
if h.used == 0 {
|
||||
return
|
||||
}
|
||||
h.buf[0] = ' '
|
||||
h.buf[1] = ' '
|
||||
h.buf[2] = ' '
|
||||
|
@ -204,6 +204,19 @@ func TestDumper_doubleclose(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestDumper_earlyclose(t *testing.T) {
|
||||
var out bytes.Buffer
|
||||
dumper := Dumper(&out)
|
||||
|
||||
dumper.Close()
|
||||
dumper.Write([]byte(`gopher`))
|
||||
|
||||
expected := ""
|
||||
if out.String() != expected {
|
||||
t.Fatalf("got:\n%#v\nwant:\n%#v", out.String(), expected)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDump(t *testing.T) {
|
||||
var in [40]byte
|
||||
for i := range in {
|
||||
|
Loading…
Reference in New Issue
Block a user