@@ -27,6 +27,32 @@ struct Stream {
2727 InputWireStream reader () { return InputWireStream (&buffer); }
2828};
2929
30+ TEST (protocol_wire_test, zero_size_char_array_buffer) {
31+ char data[] = { 0x11 };
32+ char data_to_write[] = {0 , 1 , 2 , 3 };
33+ char output;
34+
35+ // Empty Array
36+ char_array_buffer buff (data, data);
37+
38+ // No data available
39+ EXPECT_EQ (buff.in_avail (), 0 );
40+
41+ // Cannot seek into the buffer
42+ EXPECT_EQ (buff.pubseekpos (1 , std::ios::in), std::streamoff (-1 ));
43+
44+ // Get EOF when trying to read from buffer
45+ EXPECT_EQ (buff.sgetc (), EOF);
46+ EXPECT_EQ (buff.sgetc (), std::streamoff (-1 ));
47+
48+ // Bytes read should be zero when trying to read from stream
49+ EXPECT_EQ (buff.sgetn (&output, 1 ), std::streamsize (0 ));
50+
51+ // Cannot write into the buffer
52+ EXPECT_EQ (buff.sputc (0x00 ), std::streamoff (-1 ));
53+ EXPECT_EQ (buff.sputn (data_to_write, sizeof (data_to_write)), std::streamsize (0 ));
54+ }
55+
3056TEST (protocol_wire_test, char_array_buffer) {
3157 char data[] = {0 , 0 , 0 , 0 , 0 };
3258 char_array_buffer buff (data, data + sizeof (data));
0 commit comments