aboutsummaryrefslogtreecommitdiffstats
path: root/util/network/ip_ut.cpp
blob: c04063c910b76b085cad2b66fcd18734acbfa947 (plain) (blame)
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
#include "ip.h"

#include <library/cpp/testing/unittest/registar.h> 

#include <util/generic/yexception.h>

class TSysIpTest: public TTestBase {
    UNIT_TEST_SUITE(TSysIpTest);
    UNIT_TEST(TestIpFromString);
    UNIT_TEST_EXCEPTION(TestIpFromString2, yexception);
    UNIT_TEST_EXCEPTION(TestIpFromString3, yexception);
    UNIT_TEST_EXCEPTION(TestIpFromString4, yexception);
    UNIT_TEST_EXCEPTION(TestIpFromString5, yexception);
    UNIT_TEST(TestIpToString);
    UNIT_TEST_SUITE_END();

private:
    void TestIpFromString();
    void TestIpFromString2();
    void TestIpFromString3();
    void TestIpFromString4();
    void TestIpFromString5();
    void TestIpToString();
};

UNIT_TEST_SUITE_REGISTRATION(TSysIpTest);

void TSysIpTest::TestIpFromString() {
    const char* ipStr[] = {"192.168.0.1", "87.255.18.167", "255.255.0.31", "188.225.124.255"};
    ui8 ipArr[][4] = {{192, 168, 0, 1}, {87, 255, 18, 167}, {255, 255, 0, 31}, {188, 225, 124, 255}};

    for (size_t i = 0; i < Y_ARRAY_SIZE(ipStr); ++i) {
        const ui32 ip = IpFromString(ipStr[i]);

        UNIT_ASSERT(memcmp(&ip, ipArr[i], sizeof(ui32)) == 0);
    }
}

void TSysIpTest::TestIpFromString2() {
    IpFromString("XXXXXXWXW");
}

void TSysIpTest::TestIpFromString3() {
    IpFromString("986.0.37.255");
}

void TSysIpTest::TestIpFromString4() {
    IpFromString("256.0.22.365");
}

void TSysIpTest::TestIpFromString5() {
    IpFromString("245.12..0");
}

void TSysIpTest::TestIpToString() {
    ui8 ipArr[][4] = {{192, 168, 0, 1}, {87, 255, 18, 167}, {255, 255, 0, 31}, {188, 225, 124, 255}};

    const char* ipStr[] = {"192.168.0.1", "87.255.18.167", "255.255.0.31", "188.225.124.255"};

    for (size_t i = 0; i < Y_ARRAY_SIZE(ipStr); ++i) {
        UNIT_ASSERT(IpToString(*reinterpret_cast<TIpHost*>(&(ipArr[i]))) == ipStr[i]);
    }
}