MCPcopy Create free account
hub / github.com/OpenRCT2/OpenRCT2 / TestEncodeDecode

Method TestEncodeDecode

test/tests/SawyerCodingTest.cpp:37–57  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

35 static const uint8_t empty[1];
36
37 void TestEncodeDecode(ChunkEncoding encoding_type)
38 {
39 // Encode
40 ChunkHeader chdr_in;
41 chdr_in.encoding = encoding_type;
42 chdr_in.length = sizeof(randomdata);
43 uint8_t* encodedDataBuffer = new uint8_t[BUFFER_SIZE];
44 size_t encodedDataSize = WriteChunkBuffer(encodedDataBuffer, reinterpret_cast<const uint8_t*>(randomdata), chdr_in);
45 ASSERT_GT(encodedDataSize, sizeof(SawyerCoding::ChunkHeader));
46
47 // Decode
48 MemoryStream ms(encodedDataBuffer, encodedDataSize);
49 SawyerChunkReader reader(&ms);
50 auto chunk = reader.ReadChunk();
51 ASSERT_EQ(chunk->GetEncoding(), chdr_in.encoding);
52 ASSERT_EQ(chunk->GetLength(), chdr_in.length);
53 auto result = memcmp(chunk->GetData(), randomdata, sizeof(randomdata));
54 ASSERT_EQ(result, 0);
55
56 delete[] encodedDataBuffer;
57 }
58
59 void TestDecode(const uint8_t* data, size_t size)
60 {

Callers

nothing calls this directly

Calls 5

WriteChunkBufferFunction · 0.85
ReadChunkMethod · 0.80
GetEncodingMethod · 0.80
GetLengthMethod · 0.45
GetDataMethod · 0.45

Tested by

no test coverage detected