diff options
author | David Garcia Quintas <dgq@google.com> | 2015-10-30 17:01:05 -0700 |
---|---|---|
committer | David Garcia Quintas <dgq@google.com> | 2015-10-30 17:24:41 -0700 |
commit | 6eb3925a70c70e64e4c4d8577e40841473f19423 (patch) | |
tree | b7bdb62245a59e3c5fa57180090dc9f449b33db5 /test/core/surface | |
parent | 89ea0c78151b5bdc4c9236ae7100a7b97b32e499 (diff) |
Added grpc_byte_buffer_reader_readall
Diffstat (limited to 'test/core/surface')
-rw-r--r-- | test/core/surface/byte_buffer_reader_test.c | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/test/core/surface/byte_buffer_reader_test.c b/test/core/surface/byte_buffer_reader_test.c index 560e0ac7b2..c654f80f71 100644 --- a/test/core/surface/byte_buffer_reader_test.c +++ b/test/core/surface/byte_buffer_reader_test.c @@ -184,6 +184,39 @@ static void test_byte_buffer_from_reader(void) { grpc_byte_buffer_destroy(buffer_from_reader); } +static void test_readall(void) { + const char* lotsa_as[512]; + const char* lotsa_bs[1024]; + gpr_slice slices[2]; + grpc_byte_buffer *buffer; + grpc_byte_buffer_reader reader; + gpr_slice slice_out; + + LOG_TEST("test_readall"); + + memset(lotsa_as, 'a', 512); + memset(lotsa_bs, 'b', 1024); + /* use slices large enough to overflow inlining */ + slices[0] = gpr_slice_malloc(512); + memcpy(GPR_SLICE_START_PTR(slices[0]), lotsa_as, 512); + slices[1] = gpr_slice_malloc(1024); + memcpy(GPR_SLICE_START_PTR(slices[1]), lotsa_bs, 1024); + + buffer = grpc_raw_byte_buffer_create(slices, 2); + gpr_slice_unref(slices[0]); + gpr_slice_unref(slices[1]); + + grpc_byte_buffer_reader_init(&reader, buffer); + slice_out = grpc_byte_buffer_reader_readall(&reader); + + GPR_ASSERT(GPR_SLICE_LENGTH(slice_out) == 512 + 1024); + GPR_ASSERT(memcmp(GPR_SLICE_START_PTR(slice_out), lotsa_as, 512) == 0); + GPR_ASSERT(memcmp(&(GPR_SLICE_START_PTR(slice_out)[512]), lotsa_bs, 1024) == + 0); + gpr_slice_unref(slice_out); + grpc_byte_buffer_destroy(buffer); +} + int main(int argc, char **argv) { grpc_test_init(argc, argv); test_read_one_slice(); @@ -192,6 +225,6 @@ int main(int argc, char **argv) { test_read_gzip_compressed_slice(); test_read_deflate_compressed_slice(); test_byte_buffer_from_reader(); - + test_readall(); return 0; } |