Simon Goldschmidt
9e2fb2806f
unittests: fix compiling in release mode
2023-10-10 20:14:52 +02:00
Simon Goldschmidt
66ef250b8c
Fix running IPv6 reassembly unit tests on 64-bit
2023-10-10 19:59:06 +02:00
Simon Goldschmidt
c8f42025ce
ipv6 reassembly: fix detecting holes in reassembled packets
...
Added unit test for reassembly.
See bug #64767
2023-10-10 16:31:16 +02:00
Simon Goldschmidt
732d3411bf
fuzz: count packets for debugging
2023-10-03 21:37:14 +02:00
Simon Goldschmidt
9509acd876
fuzz: fix warning casting u64_t to s32_t/u32_t
2023-10-03 21:11:57 +02:00
Simon Goldschmidt
14444c1c7f
mqtt: support binary Will Message
...
see patch #10049
2023-09-29 22:08:03 +02:00
Simon Goldschmidt
9672405eb9
test: unit: tcp: fix tcp state tests to not break other tests
...
On platform where check cannot fork (win32), the tcp_state tests crashed other tests.
Signed-off-by: Simon Goldschmidt <goldsimon@gmx.de>
2023-06-29 21:32:20 +02:00
Jonathan Neuschäfer
c2f9244137
test/fuzz: Fix use of htons vs. ntohs
...
Although ntohs and htons perform equivalent operations (a byte swap on
little-endian platforms), their semantic roles (as implied by the names)
are different.
In fuzz_common.c, we get integers from simulated network packages, and
convert them for host CPU use, so ntohs is the right variant to use.
2023-05-11 22:10:32 +02:00
Jonathan Neuschäfer
5514d8eb63
test/fuzz: Build with -O2 by default
...
Fuzzers should run fast by default, since the goal is to try many
variations of input data.
2023-05-11 22:08:46 +02:00
Jonathan Neuschäfer
911da26f96
test/fuzz: Fix CC default value in makefile
...
Unfortunately, CC ?= afl-gcc doesn't work. This is because CC has a
default value (of "cc"), and the ?= operator only assigns a value if the
variable previously had none. "make" currently compiles with cc.
In this patch, I implemented the more elaborate way to achieve what was
probably intended: "make" will use afl-gcc now, and "make CC=foo" will
compile with "foo".
2023-05-11 22:08:40 +02:00
Simon Goldschmidt
90c9a482a6
ci: fix compiling test_tcp_state.c; add to msvc project
2023-05-11 20:26:21 +02:00
Chen Yu Dong
f50c87da6f
ci: Add unit test suite to validate tcp state transitions
2023-05-10 22:02:43 +02:00
Simon Goldschmidt
64f75dbd89
pppos: fix compiling new pppos unit test
...
Signed-off-by: Simon Goldschmidt <goldsimon@gmx.de>
2023-05-10 20:58:23 +02:00
David Cermak
6b734bbb2c
PPP: Add test exhibiting empty packet null-deref
...
Also updates lcp.c to compile with PPP_AUTH_SUPPORT=0 in clang
2023-05-10 20:42:27 +02:00
Jonathan Neuschäfer
95a63bc352
test/fuzz: Use HTTPS URLs and mention AFL++
2023-04-07 22:27:30 +02:00
Jonathan Neuschäfer
e8b0324f81
test/fuzz: Don't crash with assertion failure when a packet is too big
...
A fuzzer may generate big packets, and it will interpret assertion
failures as bugs. Instead of asserting that the packet size is
reasonable, simply skip the packet when it's not the case.
2023-04-07 22:25:50 +02:00
Florian La Roche
7c3aab2ea2
gcc warning for sign conversion
...
See patch #10143
2021-12-30 22:48:18 +01:00
Wouter van Gulik
5ab46f82f9
Fix failing fuzzer if compiling with ubsan
...
See patch #10163
Signed-off-by: Simon Goldschmidt <goldsimon@gmx.de>
2021-12-30 22:04:23 +01:00
Simon Goldschmidt
bb5ee3783a
fix compiling/running tests on win32
...
- new files
- different warning settings
- all tests run in a single process (no fork)
2021-05-21 22:00:49 +02:00
Erik Ekman
988ce1e80e
netif: Add test for netif_find
2021-02-27 12:28:14 +01:00
Erik Ekman
74231d6873
netif: Add test for netif_is_flag_set()
2021-02-08 19:29:33 +01:00
Erik Ekman
c825eb3604
tcp: Check tcp_output return values in tests
...
Found with clang-analyzer
2021-01-19 20:19:02 +01:00
Erik Ekman
21fba21054
test/unit: Update convenience makefile
...
Allow cleaning - useful when switching compiler between GCC/clang.
2021-01-19 20:19:02 +01:00
Erik Ekman
7b77378ed8
test/unit: Fix compilation of ip4 test
...
../../../../src/../test/unit/ip4/test_ip4.c: In function ‘test_ip4_icmp_replylen_short’:
../../../../src/../test/unit/ip4/test_ip4.c:291:35: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
fail_unless(linkoutput_byte_ctr == icmp_len + sizeof(unknown_proto));
Plus minor cleanup in second icmp reply test
2021-01-13 21:31:19 +01:00
Erik Ekman
d0c214feff
test/unit: Add convenience Makefile
...
To allow running them easily on *nix without changing directory.
2021-01-13 20:57:23 +01:00
Erik Ekman
35550eeab3
icmp: Fix copied length in response packets
...
Fixes bug #59364 , reported by Yi Guai
2021-01-13 20:31:55 +01:00
Erik Ekman
d6a37b1ad6
fuzz: Improve Makefile
...
Similar to recent change to ports/unix/check:
- Split depfile into three different files
- Fix make dep
- Skip depfile generation for 'make clean'
2020-12-04 10:51:11 +01:00
Erik Ekman
264a5a3e97
Rename IP and Ethernet equality checkers from _cmp to _eq
...
Functions ending in cmp are expected to return 0 on equality but these
return non-zero.
eth_addr_cmp -> eth_addr_eq
ip_addr_cmp -> ip_addr_eq
ip4_addr_cmp -> ip4_addr_eq
ip6_addr_cmp -> ip6_addr_eq
ip_addr_netcmp -> ip_addr_net_eq
ip4_addr_netcmp -> ip4_addr_net_eq
ip6_addr_netcmp -> ip6_addr_net_eq
ip_addr_cmp_zoneless -> ip_addr_zoneless_eq
ip6_addr_cmp_zoneless -> ip6_addr_zoneless_eq
ip6_addr_cmp_zone -> ip6_addr_zone_eq
ip6_addr_netcmp_zoneless -> ip6_addr_net_zoneless_eq
ip6_addr_nethostcmp -> ip6_addr_nethost_eq
ip6_addr_cmp_packed -> ip6_addr_packed_eq
ip6_addr_cmp_solicitednode -> ip6_addr_solicitednode_eq
All call sites have been changed, and fallback macros have been added to not
break external users.
2020-07-07 18:51:45 +02:00
Erik Ekman
047f3b3306
dns: Verify setting/getting servers in unit test
2020-07-04 18:57:41 +02:00
Erik Ekman
5b7524e10e
unit: Enable DNS
...
Avoid allocating in dns_init by enabling random source port.
2020-07-04 14:24:40 +02:00
Erik Ekman
2bf8fcd7c2
pbuf: Add pbuf_copy_partial_pbuf library function
...
Like pbuf_copy, but can copy part of a pbuf to an offset in another.
pbuf_copy now uses this function internally.
Replace pbuf_take_at loop in icmp6 with pbuf_copy_partial_pbuf().
2020-07-03 18:55:02 +02:00
Erik Ekman
942ca825d0
ip4: Fix missing END_TEST in ip4 test case
2020-07-01 21:09:49 +02:00
Erik Ekman
ec5f3a1563
ip6: Add ipv6 fragmentation test
...
Seems to work the same as ipv4, and that I was just confused by all the
loops when reading the code.
2020-07-01 20:17:29 +02:00
Erik Ekman
0bda621d3d
ip4: Verify ipv4 fragmentation sends all chunks right away
...
Ahead of investigation how ipv6 code behaves.
2020-07-01 20:16:24 +02:00
Erik Ekman
2faa2d7009
ip6: Rename pbuf in unit test
...
../../../../src/../test/unit/ip6/test_ip6.c: In function ‘test_ip6_dest_unreachable_chained_pbuf’:
../../../../src/../test/unit/ip6/test_ip6.c:314:16: error: ‘main’ is usually a function [-Werror=main]
struct pbuf *main = pbuf_alloc(PBUF_RAW, sizeof(udp_hdr), PBUF_ROM);
^~~~
cc1: all warnings being treated as errors
2020-07-01 10:46:33 +02:00
Erik Ekman
e2ae25d158
ip6: Add test for fragmenting special packet
...
Reproduces bug #57374 (Found by Hiromasa Ito).
2020-06-30 01:27:32 +02:00
Erik Ekman
90b3e45c31
pbuf: Add pbuf_copy test operating on chained pbufs
...
With the payload lengths not matching between source and destination.
Also remove redundant allocation check in other test, it is now done
in the test setup code.
2020-06-29 19:45:18 +02:00
Erik Ekman
bc1da0bddb
pbuf: Remove redundant tests that pbufs are freed
...
Already checked by lwip_check_ensure_no_alloc() in teardown function.
2020-06-24 01:00:12 +02:00
Erik Ekman
dd913250a9
icmp6: add test case for returning copy of chained pbufs
...
Currently fails due to bug #58553
2020-06-24 01:00:12 +02:00
Erik Ekman
b58e0061e0
unit: Improve message when the mem heap has usage
...
Show "mem heap still has 216 bytes allocated"
instead of "Assertion 'lwip_stats.mem.used == 0' failed"
2020-06-24 01:00:02 +02:00
Erik Ekman
ff67ce6e07
unit: Improve message when a memp pool has entries
...
Show "memp pool 'PBUF_REF/ROM' still has 2 entries allocated"
instead of "Assertion 'lwip_stats.memp[i]->used == 0' failed"
2020-06-22 00:51:09 +02:00
Erik Ekman
ea111c511e
unit: Support check v0.13.0 and later
...
Function name no longer needs to be fed separately when adding tests.
Also fix collision of non-static net_test variables in dhcp and netif
tests.
2020-06-19 15:39:15 +02:00
Erik Ekman
9b1056ef0e
fuzz: Fix compile error in simulated glibc rand
...
When using LWIP_RAND_FOR_FUZZ_SIMULATE_GLIBC:
fuzz_common.c: In function ‘lwip_fuzz_rand’:
fuzz_common.c:683:11: error: comparison of integer expressions of different signedness: ‘int’ and ‘long unsigned int’ [-Werror=sign-compare]
683 | if (idx >= sizeof(rand_nrs)/sizeof((rand_nrs)[0])) {
| ^~
cc1: all warnings being treated as errors
2020-06-19 13:26:58 +02:00
Simon Goldschmidt
e30d50710d
fuzz: allow overriding LWIP_RAND for fuzz tests
...
Fuzz tests need reproducible code, so we need an "unsafe" version of
LWIP_RAND() in this case...
Also, to reproduce fuzz tests cases from Linux on Windows,
LWIP_RAND_FOR_FUZZ_SIMULATE_GLIBC provides the first 20 random numbers that
glibc would have...
2020-03-27 22:42:06 +01:00
Simon Goldschmidt
003f5cc12d
fuzz: whitespace fixes
2020-03-09 21:50:50 +01:00
Simon Goldschmidt
b795784832
fuzz: make CC overridable from 'afl-gcc'
...
e.g. for debugging crashes
2020-03-09 21:40:30 +01:00
Simon Goldschmidt
412c8d1902
fuzz: fix compiler error "missing prototype"
2020-03-08 20:41:53 +01:00
Simon Goldschmidt
74cd9a8644
ip4: add unit test for ip4addr_aton
2020-03-05 21:28:52 +01:00
Simon Goldschmidt
a02f34a193
fuzz: add pcap output to help debugging fuzz crashes
2020-03-05 21:00:00 +01:00
Simon Goldschmidt
a9052caf10
fuzz: add debug output to help debugging fuzz crashes
2020-03-05 20:49:41 +01:00