File: ip_address.cpp

package info (click to toggle)
yrmcds 1.1.9-1
  • links: PTS
  • area: main
  • in suites: bookworm, bullseye
  • size: 940 kB
  • sloc: cpp: 11,149; sh: 148; makefile: 117
file content (57 lines) | stat: -rw-r--r-- 1,679 bytes parent folder | download | duplicates (4)
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
#include <cybozu/ip_address.hpp>
#include <cybozu/test.hpp>

AUTOTEST(ipv4) {
    cybozu_test_no_exception(
        cybozu::ip_address("123.123.123.0")
    );

    cybozu_test_exception(
        cybozu::ip_address("123.456.789.0"), cybozu::ip_address::bad_address
    );

    cybozu_test_exception(
        cybozu::ip_address("localhost"), cybozu::ip_address::bad_address
    );

    cybozu::ip_address ipv4("123.123.123.0");
    cybozu_assert( ipv4.is_v4() );
    cybozu_assert( ipv4.str() == "123.123.123.0" );
}

AUTOTEST(ipv6) {
    cybozu_test_no_exception(
        cybozu::ip_address("::1")
    );

    // cybozu_test_no_exception(
    //     cybozu::ip_address("fe80::dead:beaf%lo")
    // );

    cybozu_test_exception(
        cybozu::ip_address("fg::1"), cybozu::ip_address::bad_address
    );

    cybozu_test_exception(
        cybozu::ip_address("::1%lo"), cybozu::ip_address::bad_address
    );

    cybozu::ip_address ipv6("fd00:1234::dead:beaf");
    cybozu_assert( ipv6.is_v6() );
    cybozu_assert( ipv6.str() == "fd00:1234::dead:beaf" );
}

AUTOTEST(compare) {
    using cybozu::ip_address;
    cybozu_assert( ip_address("127.0.0.1") == ip_address("127.0.0.1") );
    cybozu_assert( ip_address("127.0.0.1") != ip_address("162.193.0.1") );
    cybozu_assert( ip_address("127.0.0.1") != ip_address("::1") );
    cybozu_assert( ip_address("::1") == ip_address("::1") );
    // cybozu_assert( ip_address("fe80::1%lo") == ip_address("fe80::1%lo") );
    // cybozu_assert( ip_address("fe80::1%lo") != ip_address("fe80::1%eth0") );
}

AUTOTEST(has_ip_address) {
    for( int i = 0; i < 1000; ++i )
        cybozu::has_ip_address(cybozu::ip_address("11.11.11.11"));
}