blob: 3615c9341c82b35db5a7bcd449d276fbbd3793ff [file] [log] [blame]
Andrew Geissler0e948dc2024-05-23 09:51:48 -05001#include "slp.hpp"
2#include "slp_meta.hpp"
3
4#include <gtest/gtest.h>
5
6/* 0 1 2 3
7 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
8 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
9 | Version | Function-ID | Length |
10 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
11 | Length, contd.|O|F|R| reserved |Next Ext Offset|
12 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
13 | Next Extension Offset, contd.| XID |
14 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
15 | Language Tag Length | Language Tag \
16 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ */
17
18TEST(parseHeaderTest, BasicGoodPath)
19{
20 // Basic buffer with valid Function-ID
21 slp::buffer testData{0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
22 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
23
24 slp::Message req;
25 int rc = slp::SUCCESS;
26 std::tie(rc, req) = slp::parser::internal::parseHeader(testData);
27
28 EXPECT_EQ(rc, 0);
29}
30
31TEST(parseHeaderTest, InvalidBufferSize)
32{
33 // 1 byte too small
34 slp::buffer testData{0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
35 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
36
37 slp::Message req;
38 int rc = slp::SUCCESS;
39 std::tie(rc, req) = slp::parser::internal::parseHeader(testData);
40
41 EXPECT_NE(rc, 0);
42}