2
#include <gtest/gtest.h>
3
#include <binary_stream.h>
13
for(int i = 0; i < sizeof(buffer); i++)
19
if(pos < sizeof(buffer))
24
void Write(uint8_t value)
26
if(pos < sizeof(buffer))
27
buffer[pos++] = value;
35
uint8_t* Str(){return buffer;}
37
using namespace Mcucpp;
38
typedef BinaryStream<BufferReader> Stream;
43
uint32_t val32 = stream.ReadU32Be();
44
EXPECT_EQ(0x01020304u, val32);
46
val32 = stream.ReadU32Le();
47
EXPECT_EQ(0x04030201u, val32);
49
uint16_t val16 = stream.ReadU16Be();
50
EXPECT_EQ(0x0102u, val16);
52
val16 = stream.ReadU16Le();
53
EXPECT_EQ(0x0201u, val16);
57
EXPECT_STREQ("\x1\x2\x3\x4\x5\x6\x7\x8", buf);
67
stream.WriteU32Be(0x01020304);
69
val32 = stream.ReadU32Be();
70
EXPECT_EQ(0x01020304u, val32);
73
stream.WriteU32Le(0x01020304);
75
val32 = stream.ReadU32Le();
76
EXPECT_EQ(0x01020304u, val32);
79
stream.WriteU16Be(0x0102);
81
val16 = stream.ReadU16Be();
82
EXPECT_EQ(0x0102u, val16);
85
stream.WriteU16Le(0x0102);
87
val16 = stream.ReadU16Le();
88
EXPECT_EQ(0x0102u, val16);
91
stream.Write("Hello world", sizeof("Hello world"));
92
EXPECT_STREQ("Hello world", (char*)stream.Str());
100
stream.Write("\x1\x2\x3\x4\x5\x6\x7\x8", 8);
102
byte = stream.Ignore(5);
103
EXPECT_EQ(0x05u, byte);
105
byte = stream.Ignore(8, 6);
106
EXPECT_EQ(0x06u, byte);
108
stream.Write("\xff\xff\xff\xff\xff\xff\x7\x8", 8);
110
byte = stream.IgnoreWhile(8, '\xff');
111
EXPECT_EQ(0x07u, byte);