Commit Graph

92 Commits (8f8773515258f645e5443b4b5840e87fee808b6d)

Author SHA1 Message Date
Ari Parkkila ffa075bea3 UNITTESTS: Fix TestPPPInterface::get_interface_name 2020-06-09 23:40:28 -07:00
Martin Kojtal 4f9d21b16a
Merge pull request #12694 from kivaisan/remove_netsocket_icetea_and_tcpserver
Remove netsocket icetea tests and TCPServer
2020-04-29 13:46:44 +02:00
Arto Kinnunen 329c5d8538 Add unittests for added methods
Add unit tests for added methods:
 -get_rtt_estimate_to_address
 -get_stagger_estimate_to_address
2020-04-23 11:58:51 +03:00
Kimmo Vaisanen 236054175b Netsocket: Remove deprecated TCPServer
TCPSocket should be used instead.
2020-04-14 12:13:08 +03:00
Kevin Bracey 874e36e05a Fully enforce NonCopyable
Make NonCopyable fully operational so it gives compile errors in all
build profiles.
2020-03-31 19:01:42 +03:00
Martin Kojtal dba3962f16
Merge pull request #12570 from kjbracey-arm/nsapics
Improve nsapi_create_stack
2020-03-31 16:34:20 +02:00
Kevin Bracey bb733f1ee8 Callback updates
* Optimise clearing by adding `nullptr` overload. This overload means
  `Callback(NULL)` or `Callback(0)` will no longer work; users must
  use `Callback(nullptr)` or `Callback()`.
* Optimise clearing by not clearing storage - increases code size of
  comparison, but that is extremely rare.
* Reduce ROM used by trivial functors - share copy/destroy code.
* Config option to force trivial functors - major ROM saving by
  eliminating the "operations" table.
* Config option to eliminate comparison altogether - minor ROM saving by
  eliminating zero padding.
* Conform more to `std::function` API.
2020-03-11 15:46:03 +02:00
Kevin Bracey 0cf1fd7811 Remove unnecessary NetworkStack casts 2020-03-05 16:45:36 +02:00
Kevin Bracey 70a6701006 Improve nsapi_create_stack
Use tag dispatch to better handle both NetworkInterface and NetworkStack
pointers.

The previous design was intended to avoid ambiguities when presented
with a scenario like

    class MyDevice : public NetworkInterface, public NetworkStack {
    };

    TCPSocket(&MyDevice);
    // Need NetworkStack *: use NetworkInterface::get_stack or
    // cast to NetworkStack?

But the previous solution didn't actually work as intended. The overload
pair

    nsapi_create_stack(NetworkStack *);
    // versus
    template <class IF>
    nsapi_create_stack(IF *);

would only select the first form if passed an exact match -
`NetworkStack *`. If passed a derived class pointer, like `MyDevice *`,
it would select the template.

This meant that an ambiguity for MyDevice was at least avoided, but
in the wrong direction, potentially increasing code size.

But in other cases, the system just didn't work at all - you couldn't
pass a `MyStack *` pointer, unless you cast it to `NetworkStack *`.
Quite a few bits of test code do this.

Add a small bit of tag dispatch to prioritise the cast whenever the
supplied pointer is convertible to `NetworkStack *`.
2020-03-05 16:45:36 +02:00
Martin Kojtal f4df4e75ea
Merge pull request #12487 from kjbracey-arm/override_nsapi
C++11-ify virtualisation in netsocket
2020-03-03 09:57:57 +00:00
Kevin Bracey d8d35eda9f C++11-ify virtualisation in netsocket
Use `override` and `final` where appropriate, and eliminate unnecessary
`virtual`.

Some other C++11 simplifications.

Reduces code size.
2020-02-28 13:34:18 +02:00
Anna Bridge 8c17270306
Merge pull request #12480 from 0xc0170/fix_spdx
Fix SPDX identifiers and licenses (excluding features and targets)
2020-02-21 16:34:30 +00:00
Martin Kojtal 2d7e1ba943 unittest: fix missing licenses + spdx 2020-02-21 07:01:00 +00:00
Michal Paszta d9e37e7212 Unittests fixed not to use deprecated string-based API 2020-02-06 11:27:50 +02:00
Martin Kojtal 9d16a17e7e
Merge pull request #11653 from tymoteuszblochmobica/multiple
Add  Getaddrinfo interface for multiple DNS adresses
2020-01-07 14:53:36 +01:00
Antti Kauppila 814ba5ab4d Fixed Non-IP cellular socket unittest 2019-12-27 16:04:10 +01:00
Antti Kauppila 48cf631456 relocated NonIP related files to netsocket root folder 2019-12-27 16:04:10 +01:00
Tymoteusz Bloch 8b2f4c2e7e Getaddrinfo interface for multiple DNS adresses added.
New members are added to the network interface
-getaddrinfo
-getaddrinfo_async
gethostbyname is unchanged but gethostbyname_async  result param now contains results od DNS records found.
Test cases for sync/async added added to DNS test folder.
2019-12-16 13:59:46 +01:00
Martin Kojtal fd4288a0dc
Merge pull request #12027 from michalpasztamobica/dns_module_test
Modify nsapi_dns tests to be module tests
2019-12-16 09:49:16 +01:00
Antti Kauppila 40fcdb731b Unittest cleanup made
CellularDevice still had the old way of defining built time defines and is now removed.
Other unittests needed some minor fixes after this.
2019-12-11 12:05:02 +02:00
Martin Kojtal f10e4ac04b
Merge pull request #11996 from ARMmbed/feature-cellular
Feature cellular
2019-12-10 14:54:57 +01:00
Michal Paszta fd46af67c6 Modify nsapi_dns tests to be module tests
The nsapi_dns tests were cross-class tests anyway, going through nsapi_dns and UDPSocket. Now they also include EthernetInterface and only mock the NetworkStack, which makes them the most cross-class module test we could think of in netsocket module.
2019-12-10 11:05:25 +02:00
Antti Kauppila 1cb3479d7a Fixed unittests 2019-12-09 15:25:22 +02:00
Antti Kauppila d6706d1a5f Unittest configuration mechanism improved
Earlier all unittests ended up having all flags in common from all unittest targets.
This is now improved by using googletest provided mechanism to set build time compile options
All cmake files have been modified to reflect changes (when needed)

Could not figure out a syntax for {0x00, 0x00, ..., 0x00} intitializer list yet,
so those needs to be setup by updating C/CXX flags.
2019-12-09 13:11:56 +02:00
Michal Paszta 75472d0554 Adjust mbed_assert_stub file extension to .cpp 2019-12-02 20:48:16 +02:00
Michal Paszta caf01479ea Improve doxygen and unittest coverage for API
Mainly focusing on hardening the tests for return values.
2019-12-02 20:48:10 +02:00
Michal Paszta 546fdd2596 Move OnboardNetworkStackMock to a separate file
The mock was only used by EthernetInterface tests, but we can reuse it for other tests as well.
2019-12-02 20:47:43 +02:00
Martin Kojtal ffdd54315f
Merge pull request #11941 from michalpasztamobica/remove_internal_string_apis
Remove string-based API usage within mbed-os
2019-11-28 14:26:03 +01:00
Antti Kauppila 367bae654d
Fixed crashing nsapi_dns unittest
Added missing "return" for NetworkStackMock's get_stack() method
2019-11-28 11:23:35 +02:00
Michal Paszta ea04c4f85e Remove internal usage of deprecated APIs in IPCore
Updated:
* netsocket classes,
* unittests, stubs and mocks,
* greentea tests
2019-11-27 20:02:20 +02:00
Seppo Takalo c54d76eddf Allow MBED_ASSERT to throw errors in unittests, so we can verify it.
GoogleTest allows you to check whether certain function throws errors.
For example:
ASSERT_ANY_THROW(mbed::HeapBlockDevice one(3050, 100));
or
ASSERT_NO_THROW(bd.init());

As MBED_ERROR is now only function that can throw errors, there is
no need to check the type of thrown object.
2019-11-22 13:10:46 +02:00
Michal Paszta fd5b4b9119 Deprecate string-based APIs in IPCore
MBED_DEPRECATE macros is added to string-based APIs.
New, non-string-based APIs are added in their place.
Wiced binaries rebuilt
Any existing stubs or mocks are adjusted to compile and run with the newly added non-string based functions.
2019-11-22 11:31:12 +02:00
Michal Paszta 4e5ea38d14 nsapi_dns: use delete[] for array alloc'd with new[] 2019-11-05 22:39:58 +02:00
Michal Paszta a26d2d9672 Unittests for nsapi_dns 2019-11-05 11:29:36 +02:00
Martin Kojtal f27aec3377
Merge pull request #11279 from cy-jayasankar/pr/added-ipv6-link-local-address-api
Add API to get ipv6 link local address
2019-11-04 15:28:41 +01:00
Jayasankar Nara cb51fa57e2 Add API to get ipv6 link local address.
Protocols like mdns requires IPv6 link local address to be advertised in its
records (AAAA record). LWIP::Interface::bringup() API is creating IPv6 link
local address;But as of now there is no API exposed by mbed-os to get the
IPv6 link local address.

This new API is required to deliver mDNS library support on mbed-os for Cypress
platforms. Unit tested it by invoking get_ipv6_link_local_address with a simple
application.
2019-11-01 03:43:36 +05:30
Balaji 2d410e3c05 Rebase the code Unittests aware of InternetDatagramSocket 2019-10-28 12:10:12 -07:00
Michal Paszta 66c4b131e2 Astyle fixes 2019-10-14 14:22:31 +03:00
Michal Paszta 1706843d7d [unittests] test for InternetSocket::close blocking
Close should not take place in case there is someone reading or writing to the socket.
2019-10-14 14:22:31 +03:00
Michal Paszta 8c3194ac4e [unittests] Improve coverage
For the following classes:
* DTLSSocket
* NetworkInterface
* TLSSocketWrapper
2019-10-14 14:22:31 +03:00
Dominika Maziec 22b6b0fddb unitests update for tcp and udp 2019-10-14 14:22:31 +03:00
Dominika Maziec e9059c214c TLSSocketWrapper::recvfrom sets SocketAddress output variable
UNITTEST added. TLSSocketWrapper unittest does not use stoip4_stub anymore.
2019-08-06 15:07:39 +02:00
Rajkumar Kanagaraj dfe4b533c3 Update Watchdog
- Changed the process into static method
 - used the singletonptr for creating the low power ticker instance
 - Added the mbed stub into cmake build for cellularnonipsocket,loramacrypto
2019-06-03 15:31:20 +02:00
Kevin Bracey 87396e0bf6 Assembler atomics
Reimplement atomic code in inline assembly. This can improve
optimisation, and avoids potential architectural problems with using
LDREX/STREX intrinsics.

API further extended:
* Bitwise operations (fetch_and/fetch_or/fetch_xor)
* fetch_add and fetch_sub (like incr/decr, but returning old value -
  aligning with C++11)
* compare_exchange_weak
* Explicit memory order specification
* Basic freestanding template overloads for C++

This gives our existing C implementation essentially all the functionality
needed by C++11.

An actual Atomic<T> template based upon these C functions could follow.
2019-04-26 13:12:35 +03:00
Teppo Järvelin b0ee22c96b Cellular: CellularContext must provide access to CellularDevice
When using NetworkInterface::get_default_instance() application gets handle
to CellularInterface which is actually CellularContext derived from CellularInterface.
Application needs also handle to CellularDevice to open other interfaces.
2019-03-26 07:29:11 +02:00
Martin Kojtal 6bdbe754cd
Merge pull request #9799 from VeijoPesonen/bugfix-esp8266-dns
Increase events.share-eventsize to 768B because of ESP8266 AT driver and asynchronous DNS
2019-02-27 11:30:38 +01:00
Veijo Pesonen 517799fd06 NetworkStack: halts if unable to add an event to the event queue 2019-02-26 09:44:15 +02:00
Martin Kojtal dbd92c746b
Merge pull request #9387 from tymoteuszblochmobica/Sockets
Multihoming initial release
2019-02-21 13:50:03 +01:00
Tymoteusz Bloch 641189c357 Multihoming change parameter orded in gethostbyname 2019-02-20 14:37:33 +02:00
Michal Paszta b241943c12 Multiple memory handling fixes
Correct memory clean-ups in multiple tests and a stub.
2019-02-20 10:50:55 +01:00