Make stdcopy.stdWriter goroutine safe.
Stop using global variables as prefixes to inject the writer header. That can cause issues when two writers set the length of the buffer in the same header concurrently. Stop Writing to the internal buffer twice for each write. This could mess up with the ordering information is written. Signed-off-by: David Calavera <david.calavera@gmail.com>
This commit is contained in:
parent
29aeaf7880
commit
f55298771e
2 changed files with 44 additions and 42 deletions
|
@ -17,10 +17,9 @@ func TestNewStdWriter(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestWriteWithUnitializedStdWriter(t *testing.T) {
|
||||
writer := StdWriter{
|
||||
Writer: nil,
|
||||
prefix: Stdout,
|
||||
sizeBuf: make([]byte, 4),
|
||||
writer := stdWriter{
|
||||
Writer: nil,
|
||||
prefix: byte(Stdout),
|
||||
}
|
||||
n, err := writer.Write([]byte("Something here"))
|
||||
if n != 0 || err == nil {
|
||||
|
@ -180,7 +179,7 @@ func TestStdCopyDetectsCorruptedFrame(t *testing.T) {
|
|||
src: buffer}
|
||||
written, err := StdCopy(ioutil.Discard, ioutil.Discard, reader)
|
||||
if written != startingBufLen {
|
||||
t.Fatalf("Expected 0 bytes read, got %d", written)
|
||||
t.Fatalf("Expected %d bytes read, got %d", startingBufLen, written)
|
||||
}
|
||||
if err != nil {
|
||||
t.Fatal("Didn't get nil error")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue