Commit graph

1994 commits

Author SHA1 Message Date
Jukka Rissanen
d202834e86 tests: net: Add tests for net_promisc API
Test that user is able to turn on/off promiscuous mode and
also receive any data from network interface.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-07-24 15:12:37 +03:00
Jukka Rissanen
e18900c5c5 tests: net: if: Add promisc mode tests
Make sure that user is able to toggle promiscuous mode flag
in network interface level and that flag value is passed
to device driver.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-07-24 15:12:37 +03:00
Jukka Rissanen
7352260696 tests: net: ethernet_mgmt: Add promisc mode tests
Test in ethernet mgmt level that promiscuous flag is passed
properly to the device driver.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-07-24 15:12:37 +03:00
Ravi kumar Veeramally
3fafe4f9ad net: ipv6: Handle large IPv6 packets properly
Current implementation does not handle large extension headers
(e.g HBHO). Which resulted network stack crashes or due to
misinterpretation of lengths network packets are dropped. Also
caused issues while preparing IPv6 packet (e.g. large HBHO header
with IPv6 fragmentation support).

Issues fixed and provided more unit tests.

Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
2018-07-23 15:01:09 +03:00
Jukka Rissanen
127220c663 tests: net: Run various tests only in qemu_x86 or native_posix
No need to run the tests in real hardware as there we can run
out of network buffers that happened with Atmel SAM-E70.

Fixes #8966

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-07-21 08:26:02 -04:00
Jukka Rissanen
faae730a53 tests: net: Print proper error if we run out of net bufs
Generate proper error if we run out of network buffers which means
so that the test can fail properly.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-07-21 08:26:02 -04:00
Jukka Rissanen
cf6a870863 tests: net: udp: Increase network buffer counts
In some hw like Atmel SAM-E70, the original amount of network
buffers is too small so increasing it slightly.
Also generate proper error if this happens in the test so it
is easier to figure out.

Fixes #8865

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-07-18 07:46:37 -04:00
Jukka Rissanen
cf71938aa1 tests: net: tcp: Use correct network interface for sending
The test app creates two network interfaces, one for simulating
local device and the other one for peer device. Make sure that
the tests use correct network interface in each test. We cannot
guarantee that net_if_get_default() will always return correct
interface in different architectures as that depends how the
net_if structs are placed in corresponding linker section.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-07-17 21:12:45 +03:00
Jukka Rissanen
9ad36e7145 tests: net: arp: Increase network buffer counts
In some hw like Atmel SAM-E70, the original amount of network
buffers is too small so increasing it slightly.
Also generate proper error if this happens in the test so it
is easier to figure out.

Fixes #8866

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-07-12 23:12:32 -04:00
Jukka Rissanen
f5ec56747e tests: net: trickle: Initialize test variables earlier
The cb_[1|2]_called variables were initialized just before running
the test. This was too late as in some cases the Trickle timer
was triggered before the variables were init, which then caused the
test to fail even though there was no actual timer failure.

This was seen with frdm_k64f and when CONFIG_BOOT_DELAY=1000 was set.

Fixes #8658

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-07-06 13:07:06 +03:00
Tomasz Gorochowik
01c11c172a tests: net: Add 802.1Qav test
For now just assume that the fake driver has just one priority/Qav
capable queue.

Signed-off-by: Tomasz Gorochowik <tgorochowik@antmicro.com>
2018-07-04 16:27:34 -04:00
Tomasz Gorochowik
2ca3b1e3c4 net: if: Fix TX timestamp callbacks invocation
The problem is that net_if_call_timestamp_cb only checked if the
callback was registered for the PORT which invoked the whole action.

There is a possibility, that the callback will be registered, and packet
A will be passed to eth driver. Before the driver is finished with
packet A, network layer will start handling another packet (B) - so it
will unregister the callback for packet A and register it for B. After
that the network driver will finish processing packet A and invoke the
timestamp callback. The mechanism would then only check if a callback is
registered for the port of the driver and invoke the callback for the
packet that was registered earlier (so A instead of B).

This commit fixes that by storing info not only about the port but about
the packet too.

Signed-off-by: Tomasz Gorochowik <tgorochowik@antmicro.com>
2018-07-04 16:26:35 -04:00
Jukka Rissanen
b4dae00741 tests: net: tx_timestamp: Check max number of interfaces
Add checks so that we do not overflow the network interface
array.

Fixes #8715

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-07-04 16:00:22 +03:00
Jukka Rissanen
482865c4c4 tests: net: ptp: Make sure we check clock increment properly
If the sys_rand32_get() returns large value, then we might
decrement the clock which is not intended in this test.

Fixes #8657

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-07-04 08:29:50 -04:00
Paul Sokolovsky
c89a06dbc1 net: config: Introduce a dedicated header for the library
Split out definition of net_app_init() and its parameter flags from
net_app.h header to new net_config.h header. As we do this, rename
the function to net_config_init() and flags to NET_CONFIG_NEED_*.
This is a second step in splitting out network configuration API
out of net_app API, started in the c60df1311 commit.

Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
2018-07-02 12:36:35 +03:00
Tomasz Bursztyka
d309c870c7 net/ipv6: Properly separate what belongs to ipv6 from the rest
Context part should be in context. Then, rename ipv6 function for
clarity.

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2018-07-02 12:34:12 +03:00
Kumar Gala
9127c4b3b1 tests: Cleanup converting int result to string
Introduce TC_RESULT_TO_STR to convert from an integer test result to a
string like "PASS", "FAIL", "SKIP".  Do this to remove the defines of
PASS/FAIL/SKIP since those names might get used by other code and to
have a single consistent way of doing the conversion.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2018-06-29 11:53:59 -05:00
Tomasz Bursztyka
1a12571482 tests/net: Fix L2 directory lookup for header inclusion
L2 directory is now located in subsys/net/l2

Fixes #8642

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2018-06-29 10:32:27 -05:00
Tomasz Bursztyka
89eeba4250 net/arp: No need to expose publicly arp header
ARP is something internal to ethernet L2, let's just hide its header
file.

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2018-06-29 12:57:45 +03:00
Jukka Rissanen
45b06a252f net: gptp: Initial core IEEE 802.1AS support
Core IEEE 802.1AS-2011 (gPTP) support and application interface.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Signed-off-by: Julien Chevrier <julien.chevrier@intel.com>
2018-06-28 16:50:50 +03:00
Sebastian Bøe
2bcfb88aed cmake: Remove duplicate invocations of target_link_libraries on app
It is not necessary to link 'app' with mbedTLS because mbedTLS is
covered by the 'APP_LINK_WITH_MBEDTLS' mechanism that automatically
links 'app' with mbedTLS.

This patch removes the redundant target_link_libraries invocations.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2018-06-26 15:53:32 +02:00
Jukka Rissanen
2c8c1310fb tests: net: ptp: Add ptp clock driver tests
Make sure that the PTP clock driver works as expected.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-06-26 12:37:28 +03:00
Jukka Rissanen
c63363711d tests: net: Add unit test for network pkt timestamping
Test that Tx timestamp callback code is called properly if network
packet timestamping is enabled.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-06-22 12:31:32 -04:00
Leandro Pereira
c16bce7a6a samples, subsys, tests: Use ARRAY_SIZE() whenever possible
The ARRAY_SIZE() utility macro will actually test the parameter types,
and ensure that it is only called with arrays, and not arrays decayed
to pointers.

Changes were performed with a simple Coccinelle script.

Signed-off-by: Leandro Pereira <leandro.pereira@intel.com>
2018-06-14 19:12:51 -04:00
Jukka Rissanen
59bf65f481 tests: net: Fix tests so they can be run in real hw
Both the vlan and checksum_offload tests expect to be run in
controlled environment where the test application is providing
ethernet connectivity. If the board under test has also ethernet
support, then internal checks will fail in the test application.
Because of this, disable on board ethernet so that the tests will
pass.

Fixes #8172

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-06-05 10:30:30 -04:00
Jukka Rissanen
b43000f5eb tests: net: trickle: Fix running on frdm-k64f
The trickle API tests were not run properly in frdm-k64f board.

Fixes #8171

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-06-05 10:30:30 -04:00
Jukka Rissanen
a803335a7c tests: net: Increase the stack size of frdm-k64f
The icmpv6, http_header_fields, mqtt_packet, dns_packet and
net utils tests were failing in frdm-k64f because of too small
stack.

Fixes #8171

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-06-05 10:30:30 -04:00
Anas Nashif
b5a3ddf7d7 tests: ieee802154/crypto: use console harness
Use console harness to detect PASS/FAIL. This test should be moved to
ztest at some point.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-06-04 14:34:00 -04:00
Ulf Magnusson
12f87f7a94 tests: net: Fix assignments to CONFIG_NET_DEBUG_6LO
This symbol was renamed by commit 14e73e73c3 ("net: Make DEBUG config
option naming consistent"), but an assignment (and a commented-out
assignment) to the old name remained.

Fix the assignments to use the new name.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2018-05-29 16:20:35 -04:00
Ulf Magnusson
4317a181c9 tests: net: all: Increase NET_MAX_CONTEXTS from 4 to 5
DNS_RESOLVER_MAX_SERVERS has the range [1,NET_MAX_CONTEXTS], with
NET_MAX_CONTEXTS being set to 4, but is set to 5. Out-of-range .config
values are ignored, so the symbol reverts to its default value (1).

Increase NET_MAX_CONTEXTS to 5. DNS_SERVER{1-5} being set probably
implies that DNS_RESOLVER_MAX_SERVERS shouldn't be decreased to 4.

This fixes two Kconfig warnings (out-of-range + didn't get assigned
value).

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2018-05-28 12:20:10 -04:00
Ulf Magnusson
3c8e033e69 tests: net: all: Remove CONFIG_HTTP_HEADER_FIELD_ITEMS assignment
This symbol was removed by commit d1675bf3e6 ("net: http: Remove the
old legacy API").

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2018-05-25 11:21:01 -04:00
Ulf Magnusson
f6bdcb71ea tests: net: all: Fix assignments to old nbuf API Kconfig symbols
These symbols were renamed by commit bf964cdd4c ("net: Renaming net
nbuf API to net pkt API").

Update the assignments to use the new names.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2018-05-25 11:21:01 -04:00
Ulf Magnusson
7765813787 tests: net: all: Fix assignments to old TIME_WAIT Kconfig symbols
CONFIG_NET_TCP_{TIME_WAIT,2MSL_TIME} were replaced by
CONFIG_NET_TCP_TIME_WAIT_DELAY in commit 89f57c225a ("net:tcp: Define
single condig option for TIME_WAIT delay"), which also switched from
seconds to milliseconds for specifying the delay.

Remove the old assignments and set the new symbol to give the same
behavior as before.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2018-05-25 11:21:01 -04:00
Ulf Magnusson
637ad4cc49 tests: net: all: Remove redundant/misspelled NET_RPL assignments
CONFIG_NET_RPL_MC_ETX was misspelled as "..._EXT".

CONFIG_NET_RPL_MC_{NONE,EXT,ENERGY} are choice symbols. Setting a choice
symbol to 'y' implies that none of the other choice symbols are
selected, so remove the 'n' assignments and keep just the
CONFIG_NET_RPL_MC_ENERGY=y assignment.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2018-05-25 11:21:01 -04:00
Ulf Magnusson
2facf33f28 net: ieee802154: Remove old cc2520 AUTO_ACK assignments
CONFIG_IEEE802154_CC2520_AUTO_ACK started out as
CONFIG_TI_CC2520_AUTO_ACK, which was removed in commit 6b43821f20
("net: Remove legacy Contiki based uIP stack"). The assignments were
later renamed in commit 573774a9bf ("drivers/net/ieee802154: Change
configuration prefix").

Remove them.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2018-05-25 11:20:37 -04:00
Jukka Rissanen
d6b11e15be tests: net: arp: Check NULL in unicast test
Coverity-CID: 186047
Fixes #7724

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-05-24 08:01:28 -04:00
Punit Vara
7a3ace35dd tests: Remove newline character
Remove new line character from all zassert_*
messages. Following script has been used to do this.

https://github.com/punitvara/scripts/blob/master/remove_newlinech.py

zassert test framework adds newlines character implicitly.

issue: #7170

Signed-off-by: Punit Vara <punit.vara@intel.com>
2018-05-23 12:59:12 -04:00
Kumar Gala
ac13bedc84 tests: net: all: Fix COAP enablement in prj.conf
We had a left over from the old ZOAP lib in pjr.conf.  So enable the
COAP lib instead of ZOAP.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2018-05-23 09:06:05 -05:00
Ulf Magnusson
4190f61c28 tests: net: Fix misspelled CONFIG_DNS_NUM_CONCUR_QUERIES assignments
CONFIG_DNS_NUM_OF_CONCUR_QUERIES doesn't exist.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2018-05-23 08:51:11 -04:00
Ulf Magnusson
5414a7de5f tests: mqtt: Fix CONFIG_NET_BUF_DATA_SIZE assignments
These were using the older name CONFIG_NET_NBUF_DATA_SIZE (note the
extra 'N'). The symbol was renamed in commit bf964cdd4c ("net:
Renaming net nbuf API to net pkt API").

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2018-05-23 08:50:48 -04:00
Jukka Rissanen
6180b904af net: Too long timeout was passed to k_sleep
The code was using MSEC() macro in few places instead of more
proper K_MSEC(). The MSEC() takes seconds as a parameter and
K_MSEC() takes milliseconds.

Fixes #7657

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-05-22 08:55:27 -04:00
Tomasz Gorochowik
e2db76c9cc tests/net: Fix ethernet mgmt mac change test
The test checked if the change was reported as successful and it always
was.  What needs to be done is comparing whether the mac address was
actually changed to the requested one.

This commit adds this check.

Signed-off-by: Tomasz Gorochowik <tgorochowik@antmicro.com>
2018-05-16 16:22:38 +03:00
Michael Scott
2c987298f2 net: tcp: expose some TCP helper functions
Similar to UDP, some drivers can make use of the following functions:
net_tcp_get_hdr()
net_tcp_set_hdr()

Let's expose them as <net/tcp.h> and change all internal references
to "tcp_internal.h".

Signed-off-by: Michael Scott <michael@opensourcefoundries.com>
2018-05-15 18:07:47 +03:00
Jukka Rissanen
e8d0571b26 tests: net: tcp: Remove unnecessary code
As this test uses dummy L2 driver, there is no need for ethernet
specific setup as that is not used for anything.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-05-14 14:54:24 +03:00
Jukka Rissanen
4763844013 tests: net: tcp: IPv4 header was not initialized
When creating IPv4 packet, the IPv4 header contained uninitialized
values. This was reported by valgrind.

Conditional jump or move depends on uninitialised value(s)
   at 0x8066AB0: calc_chksum (utils.c:386)
   by 0x8066C99: calc_chksum_pkt (utils.c:428)
   by 0x806710A: net_calc_chksum (utils.c:487)
   by 0x8067B8D: net_calc_chksum_icmpv4 (net_private.h:138)
   by 0x8067FEC: net_icmpv4_set_chksum (icmpv4.c:90)
   by 0x8068E7A: net_icmpv4_send_error (icmpv4.c:338)
   by 0x807272F: send_icmp_error (connection.c:773)
   by 0x80731A3: net_conn_input (connection.c:992)
   by 0x806A34D: net_ipv4_process_pkt (ipv4.c:212)
   by 0x805D8B9: process_data (net_core.c:103)
   by 0x805D939: processing_data (net_core.c:117)
   by 0x805E498: net_rx (net_core.c:300)
 Uninitialised value was created by a stack allocation
   at 0x804A437: setup_ipv4_tcp (main.c:297)

Conditional jump or move depends on uninitialised value(s)
   at 0x8067117: net_calc_chksum (utils.c:489)
   by 0x8067B8D: net_calc_chksum_icmpv4 (net_private.h:138)
   by 0x8067FEC: net_icmpv4_set_chksum (icmpv4.c:90)
   by 0x8068E7A: net_icmpv4_send_error (icmpv4.c:338)
   by 0x807272F: send_icmp_error (connection.c:773)
   by 0x80731A3: net_conn_input (connection.c:992)
   by 0x806A34D: net_ipv4_process_pkt (ipv4.c:212)
   by 0x805D8B9: process_data (net_core.c:103)
   by 0x805D939: processing_data (net_core.c:117)
   by 0x805E498: net_rx (net_core.c:300)
   by 0x805E51D: process_rx_packet (net_core.c:312)
   by 0x8085E87: work_q_main (work_q.c:39)
 Uninitialised value was created by a stack allocation
   at 0x804A437: setup_ipv4_tcp (main.c:297)

Fixes #7447

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-05-14 14:54:07 +03:00
Jukka Rissanen
d551565802 tests: net: coap: Fix uninitialized memory access
The options array was not initialized to 0 and the size of the
array was not set properly. This caused following error in valgrind

Conditional jump or move depends on uninitialised value(s)
   at 0x8056777: coap_find_options (coap.c:1096)
   by 0x804AEFF: test_parse_simple_pdu (main.c:455)
   by 0x80500E6: zephyr_app_main (main.c:1585)
   by 0x807E231: bg_thread_main (init.c:254)
   by 0x80842D7: _thread_entry (thread.c:201)
   by 0x8059618: posix_thread_starter (posix_core.c:301)
   by 0x40752C8: start_thread (in /usr/lib/libpthread-2.25.so)
   by 0x4182055: clone (in /usr/lib/libc-2.25.so)

Fixes #7447

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-05-14 14:54:07 +03:00
Jukka Rissanen
93e71ab092 tests: net: mgmt: Do not allocate link address from stack
This will lead invalid IPv6 address to be generated. This was seen
in valgrind.

Conditional jump or move depends on uninitialised value(s)
   at 0x40371A4: bcmp (vg_replace_strmem.c:1100)
   by 0x8058833: net_ipv6_addr_cmp (net_ip.h:542)
   by 0x805B999: ipv6_addr_find (net_if.c:768)
   by 0x805BC8C: net_if_ipv6_addr_add (net_if.c:846)
   by 0x804A7D7: _iface_ip6_add (mgmt.c:271)
   by 0x804A5DC: test_core_event (mgmt.c:251)
   by 0x804AD1D: test_mgmt (mgmt.c:320)
   by 0x807EA81: run_test_functions (ztest.c:56)
   by 0x807EC3C: test_cb (ztest.c:196)
   by 0x8085AFD: _thread_entry (thread.c:201)
   by 0x8051B43: posix_thread_starter (posix_core.c:301)
   by 0x40752C8: start_thread (in /usr/lib/libpthread-2.25.so)

Fixes #7447

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-05-14 14:54:07 +03:00
Andy Gross
f71e497d98 tests: net: ipv6: Add assert for net_if_config_ipv6_get
This patch fixes a coverity issue with checking the outcome of a call
to net_if_config_ipv6_get().

Coverity-ID: 183478

Signed-off-by: Andy Gross <andy.gross@linaro.org>
2018-05-11 18:43:13 -04:00
Andy Gross
d76cc488a2 tests: net: checksum_offload: Check for valid UDP_HDR
This patch fixes a coverity issue with dereferencing a null ptr.  The
test needs to make sure there is a valid udp hdr before inspecting the
contents.

Coverity-ID: 183484
Coverity-ID: 183480

Signed-off-by: Andy Gross <andy.gross@linaro.org>
2018-05-11 16:50:59 -04:00
Anas Nashif
540e11ced7 tests: rename main test to main.c
For many tests, avoid splitting into files and put eveything in main.c.
For many of the tests, use main.c as the test source file to keep things
consistent.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-07 12:27:07 -04:00