1
0
mirror of https://github.com/golang/go synced 2024-11-20 10:54:49 -07:00

ByteBuffer.WriteByte

R=r
DELTA=17  (10 added, 0 deleted, 7 changed)
OCL=28860
CL=28862
This commit is contained in:
Robert Griesemer 2009-05-14 17:03:47 -07:00
parent 8203a4cb9d
commit 472e191a23
2 changed files with 19 additions and 9 deletions

View File

@ -74,6 +74,13 @@ func (b *ByteBuffer) Write(p []byte) (n int, err os.Error) {
return n, nil
}
// WriteByte appends the byte c to the buffer.
// Because Write never fails and WriteByte is not part of the
// io.Writer interface, it does not need to return a value.
func (b *ByteBuffer) WriteByte(c byte) {
b.Write([]byte{c});
}
// Read reads the next len(p) bytes from the buffer or until the buffer
// is drained. The return value n is the number of bytes read; err is always nil.
func (b *ByteBuffer) Read(p []byte) (n int, err os.Error) {

View File

@ -101,20 +101,23 @@ func TestBasicOperations(t *testing.T) {
}
check(t, "TestBasicOperations (4)", &buf, "a");
n, err = buf.Write(data[1 : 26]);
if n != 25 {
buf.WriteByte(data[1]);
check(t, "TestBasicOperations (5)", &buf, "ab");
n, err = buf.Write(data[2 : 26]);
if n != 24 {
t.Errorf("wrote 25 bytes, but n == %d\n", n);
}
check(t, "TestBasicOperations (5)", &buf, string(data[0 : 26]));
buf.Truncate(26);
check(t, "TestBasicOperations (6)", &buf, string(data[0 : 26]));
buf.Truncate(20);
check(t, "TestBasicOperations (7)", &buf, string(data[0 : 20]));
buf.Truncate(26);
check(t, "TestBasicOperations (7)", &buf, string(data[0 : 26]));
empty(t, "TestBasicOperations (8)", &buf, string(data[0 : 20]), make([]byte, 5));
empty(t, "TestBasicOperations (9)", &buf, "", make([]byte, 100));
buf.Truncate(20);
check(t, "TestBasicOperations (8)", &buf, string(data[0 : 20]));
empty(t, "TestBasicOperations (9)", &buf, string(data[0 : 20]), make([]byte, 5));
empty(t, "TestBasicOperations (10)", &buf, "", make([]byte, 100));
}
}