]>
Commit | Line | Data |
---|---|---|
751ca3f1 ZJS |
1 | /*** |
2 | This file is part of systemd | |
3 | ||
4 | Copyright 2017 Zbigniew Jędrzejewski-Szmek | |
5 | ||
6 | systemd is free software; you can redistribute it and/or modify it | |
7 | under the terms of the GNU Lesser General Public License as published by | |
8 | the Free Software Foundation; either version 2.1 of the License, or | |
9 | (at your option) any later version. | |
10 | ||
11 | systemd is distributed in the hope that it will be useful, but | |
12 | WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
14 | Lesser General Public License for more details. | |
15 | ||
16 | You should have received a copy of the GNU Lesser General Public License | |
17 | along with systemd; If not, see <http://www.gnu.org/licenses/>. | |
18 | ***/ | |
19 | ||
20 | #include "log.h" | |
21 | #include "resolved-dns-packet.h" | |
22 | ||
23 | static void test_dns_packet_new(void) { | |
24 | size_t i; | |
46a58596 | 25 | _cleanup_(dns_packet_unrefp) DnsPacket *p2 = NULL; |
751ca3f1 | 26 | |
46a58596 | 27 | for (i = 0; i <= DNS_PACKET_SIZE_MAX; i++) { |
751ca3f1 ZJS |
28 | _cleanup_(dns_packet_unrefp) DnsPacket *p = NULL; |
29 | ||
51027656 | 30 | assert_se(dns_packet_new(&p, DNS_PROTOCOL_DNS, i, DNS_PACKET_SIZE_MAX) == 0); |
751ca3f1 ZJS |
31 | |
32 | log_debug("dns_packet_new: %zu → %zu", i, p->allocated); | |
33 | assert_se(p->allocated >= MIN(DNS_PACKET_SIZE_MAX, i)); | |
86d06089 ZJS |
34 | |
35 | if (i > DNS_PACKET_SIZE_START + 10 && i < DNS_PACKET_SIZE_MAX - 10) | |
36 | i = MIN(i * 2, DNS_PACKET_SIZE_MAX - 10); | |
751ca3f1 | 37 | } |
46a58596 | 38 | |
51027656 | 39 | assert_se(dns_packet_new(&p2, DNS_PROTOCOL_DNS, DNS_PACKET_SIZE_MAX + 1, DNS_PACKET_SIZE_MAX) == -EFBIG); |
751ca3f1 ZJS |
40 | } |
41 | ||
42 | int main(int argc, char **argv) { | |
43 | ||
44 | log_set_max_level(LOG_DEBUG); | |
45 | log_parse_environment(); | |
46 | log_open(); | |
47 | ||
48 | test_dns_packet_new(); | |
49 | ||
50 | return 0; | |
51 | } |