~aleteoryx/muditaos

ref: a0677af340a1fec8e8652b64fb97ca7f0902de12 muditaos/module-cellular/modem/mux/tests/test-DLCChannel.cpp -rw-r--r-- 1.8 KiB
a0677af3 — Marek Niepieklo [CP-615] Update existing backup/restore implementation in OS 4 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "catch.hpp"
#include "DLC_channel.h"
#include "TS0710_Frame.h"

TEST_CASE("test-DLC_channel")
{
    DLCChannel *_class = new DLC_channel();
    REQUIRE(_class->getName() == "none");
    delete _class;

    _class = new DLCChannel(2, "Test2");
    REQUIRE(_class->getName() == "Test2");
    REQUIRE(_class->getDLCI() == 2);
    std::vector<uint8_t> v;
    v.push_back(0xAA);
    v.push_back(0x00);
    v.push_back(0xAA);
    _class->SendData(v);
    delete _class;
}

TEST_CASE("test-Frame")
{
    TS0710_Frame::frame_t frame;
    frame.Address = static_cast<uint8_t>(2 << 2) | (1 << 1); // set C/R = 1 - command
    frame.Control = static_cast<uint8_t>(TypeOfFrame_e::UIH);
    frame.data.push_back(0x00);
    frame.data.push_back(0x01);
    frame.data.push_back(0x02);
    TS0710_Frame *_class = new TS0710_Frame(frame);

    // check for not extended address
    REQUIRE(_class->isComplete() == true);

    std::vector<uint8_t> v = _class->getSerData();
    delete _class;

    _class = new TS0710_Frame(v);
    REQUIRE(_class->isComplete() == true);
    delete _class;

    v.pop_back();
    _class = new TS0710_Frame(v);
    REQUIRE(_class->isComplete() == false);
    delete _class;

    // check for extended address
    v.clear();
    frame.data.clear();
    for (int i = 0; i < 256; i++)
        frame.data.push_back(0xAA);
    _class = new TS0710_Frame(frame);

    REQUIRE(_class->isComplete() == true);
    v = _class->getSerData();
    delete _class;

    _class = new TS0710_Frame(v);
    REQUIRE(_class->isComplete() == true);
    delete _class;

    v.pop_back();
    _class = new TS0710_Frame(v);
    REQUIRE(_class->isComplete() == false);
    delete _class;
}