Commit Graph

787 Commits (de0c4049832d559c229de5752767dacf70d03c72)

Author SHA1 Message Date
Lingkai Dong e75a45d041 Unit tests: Move drivers target_h stubs 2021-08-02 17:42:43 +01:00
Martin Kojtal 3318720ada
Merge pull request #14941 from hazzlim/update-tests-to-use-chrono
Update references to time values to use chrono
2021-07-30 12:02:10 +01:00
harmut01 86c2d70a5b Greentea: Remove deprecated APIs and use chrono
References to time should do so using std::chrono. We reworked tests in
connectivity and drivers to use std::chrono and new APIs in order to
remove deprecation warnings resulting from deprecated API calls.
This required addition of  a macro for test assertions using std::chrono
values.

As host test "timing_drift_auto" expects time values represented as an
integral number of microseconds, we explicitly provide this in place
using "microseconds{TICKER_TIME}.count()" in the relevant ticker tests.
We recognise this is ugly, but thought it best to descriptively convert
from std::chrono to the host test's required representation.

Co-authored-by: Hari Limaye <hari.limaye@arm.com>
2021-07-29 14:06:27 +01:00
Robert Walton a09d08917b CMake: unittests: Show all tests in CTest report
Previously a test executable was recognised as a single test by CTest.
However, test executables usually contain multiple test cases, the
results of the test cases should be individually reported. With our
previous setup we could miss test case failures that didn't cause the
executable to return an error code.

This commit uses gtest_discover_test to discover all test cases in a
test executable. This enables CTest to match test passes and failures
from the googletest binary output.
2021-07-27 21:09:39 +01:00
Robert Walton 1e48a61d89 CMake: unittests: Remove trailing whitespace 2021-07-27 21:09:38 +01:00
Hari Limaye bfe24ce64d Greentea: Remove unused variable from ticker test
Ticker test contains definition of variable total_ticks, which is unused
in the file since removal of function wait_and_print() in commit
aaa15bcf58
2021-07-21 12:21:58 +01:00
Martin Kojtal a07ec0bfeb
Merge pull request #14805 from rkotan/I2C_Multiple_Buses_fix
i2c: fix issue #14735 with multiple buses
2021-07-20 09:44:59 +02:00
Martin Kojtal 7095dc79fa
Merge pull request #14688 from MubeenHCLite/CAN_rxinterrupt_fix
Solution for mutex problem in CAN read ISR
2021-07-12 17:21:56 +02:00
Mohammed Mubeen d477efe780 Corrected the conditional compilation of RawCAN. 2021-07-09 11:34:25 +05:30
Martin Kojtal e145ae3acd
Merge pull request #14881 from jeromecoutant/PR_LED1
Standard Pin Name: LED1 issue for targets without LED
2021-07-07 17:53:44 +02:00
Mohammed Mubeen 27df8c74d3 Indentation set for the comments 2021-07-07 10:32:09 +05:30
Lingkai Dong 9b8acca136 Remove `#ifdef UNITTEST` from MbedCRC.h
Production code should not contain any test-specific checks. Rather
than checking `UNITTEST`, MbedCRC.h can simply include in all cases
<mstd_type_traits> whose unit test stub exists.

Also remove the `UNITTEST` macro from CMake definitions of kvstore
unit tests which depend on MbedCRC.h.
2021-07-06 17:29:15 +01:00
jeromecoutant d9204d06eb generic_tests update for targets without LED1 2021-07-06 17:13:45 +02:00
Mohammed Mubeen 65a72c29c8 Added documentation for the implementation 2021-07-06 20:12:12 +05:30
Mohammed Mubeen ff01046385 Spell check corrected 2021-07-03 15:10:10 +05:30
Mohammed Mubeen 8622f66b46 Resolved review comments 2021-07-03 13:22:25 +05:30
Mohammed Mubeen d4eba5c0a7 Resolving the astyle error 2021-06-30 18:01:04 +05:30
Mohammed Mubeen debfda67f2 Updated the Licenses for RawCAN and aligned indentation 2021-06-30 17:40:32 +05:30
Mohammed Mubeen 7a4a4ea30d Added a newline at the end of RawCAN.cpp 2021-06-30 10:33:24 +05:30
Mohammed Mubeen 3565ae3b3b Removed the new line at the end of file. 2021-06-30 07:37:08 +05:30
Jaeden Amero 472c688a83
Merge pull request #14828 from hazzlim/add-cmake-supports-psa-tests
CMake: Add CMake to mbed-psa greentea tests
2021-06-29 15:17:01 +01:00
Mohammed Mubeen 5d861f895d
Merge branch 'master' into CAN_rxinterrupt_fix 2021-06-29 18:32:48 +05:30
Hari Limaye f95052cf6f CMake: Require TEST_SOURCES in greentea CMake file
Assumption that greentea test file is always named main.cpp is
incorrect. Updated mbed_greentea_add_test() macro to make TEST_SOURCES
parameter compulsory, which is used to specify greentea test
file(s). This allows tests to use C, or have a different name.
Therefore also updated all pre-existing greentea test CMake files to
explicity add main.cpp to TEST_SOURCES.
2021-06-29 13:33:42 +01:00
Mohammed Mubeen 1a2d624828 Added Raw CAN (unlocked can read api) and updated the code for the
rxInterrupt to work for all CAN instances
2021-06-29 12:46:21 +05:30
Martin Kojtal 9244625508
Merge pull request #14786 from ARMmbed/move_drivers_stub
Move mbed-stubs-drivers to the drivers directory
2021-06-24 15:43:37 +02:00
Rajkumar Kanagaraj e64d1c7605 CMake: unit-tests: Make drivers stub only depend on headers it uses
Previously the drivers stub library depended on `mbed-headers`, which
is a collection of all available headers in mbed-os. To make it easier
to separate the library, only depend on the headers we're using.
2021-06-22 04:32:17 -07:00
Rajkumar Kanagaraj 05cd885931 CMake: unit-tests: Move mbed-headers-drivers to the drivers directory
Move the header-only mbed-headers-drivers library the unit test stubs
depend on into the drivers component directory. This makes the drivers
stubs more self-contained and improves the composition of the library.
2021-06-22 04:28:06 -07:00
Rajkumar Kanagaraj ae5bc5a39e CMake: Move drivers stubs to the mbed-os/drivers directory
Move the drivers stub library into the drivers component directory.
so we can avoid duplicating the mbed-os source tree in a central
UNITTESTS folder.
2021-06-22 04:28:06 -07:00
Rajkumar Kanagaraj 9a4bdb8ef4 CMake: unit-tests: Make drivers UNITTESTS only depend on headers it uses
Previously the drivers unit tests depended on `mbed-headers`, which
is a collection of all available headers in mbed-os. To make it easier
to separate the library, only depend on the headers we're using.
2021-06-22 04:17:56 -07:00
Rajkumar Kanagaraj 10beeab6c2 CMake: unit-tests: Pwmout & Watchdog: Remove trailing whitespace 2021-06-22 04:05:07 -07:00
Vladimir Korneev 4b34f567af Fix hanging with multiple I2C buses
Make the _mutex non-static and remove _owner and acquire()

When two or more I2C buses are used then static__mutex and _owner are
shared between all I2C class instances in the program. That
wastes time to reconfigure periphery on every transfer.

Make _mutex non-static. Remove _owner and acquire() method
because in non-static case they have no practical meaning.
2021-06-20 20:34:00 +03:00
Robert Walton a0befae2d4 CMake: Only build unit tests if Mbed OS is the current project
Typically when adding a unit test directory to a CMake project a check
will be used to ensure the subdirectory is added only if the following
are true:

* The BUILD_TESTING option is set to ON.
* The current CMake project is the top-level project.

The reason being, if a downstream project includes our project they
generally don't want to build our unit tests.

In mbed-os, we do correctly specify the above condition before adding
the central UNITTEST subdirectory, which fetches googletest and adds the
"stub" libraries the unit tests depend on. However, we only check if
CMAKE_CROSSCOMPILING is OFF (or undefined) before actually adding the
unit tests. This mismatched logic would lead to unexpected build
failures in various scenarios. One likely case could be: a downstream
project including mbed-os happens to set CMAKE_CROSSCOMPILING to
OFF/undefined for any reason (possibly to build its own unit tests).
mbed-os would go ahead and attempt to build its tests without fetching
googletest or adding the required stub targets.

To fix the issue replace the check for CMAKE_CROSSCOMPILING in the unit
tests with the same BUILD_TESTING idiom we use for adding the central
UNITTESTS subdirectory.
2021-06-10 23:34:14 +01:00
Martin Kojtal ae79b61765
Merge pull request #14675 from 0xc0170/fix_i2c_start
i2c: `start()` should aquire the bus
2021-06-07 20:49:58 +02:00
Rajkumar Kanagaraj 50fc85dc44 CMake: Remove all unittest.cmake script from test suite
- Remove redundant cmake script as already added the CMake configuration file
- Remove redundant empty_baseline as it is no longer needed with the help of CMake configuration file
2021-05-26 07:09:14 -07:00
Anna Bridge 891805b42e
Merge pull request #14662 from AGlass0fMilk/can-message-comparison-operators
Add CANMessage deep comparison operators
2021-05-25 14:05:03 +01:00
Anna Bridge e0069d8b9a
Merge pull request #14678 from ghseb/uartserial-shadowing-2
Serial: remove shadowing member variables
2021-05-24 13:20:11 +01:00
Anna Bridge 4e586a93d3
Merge pull request #14426 from ARMmbed/feature_unittest_refactor
CMake: Refactor UNITTESTS CMake
2021-05-24 13:04:22 +01:00
Sebastian Stockhammer 77b5ffc2f6 Remove shadowing member variables
- The variables shadow SerialBase::_tx_enabled and SerialBase::_rx_enabled
- Update interrupts when input/output is enabled to avoid infinite congestion
- Update comments
2021-05-19 09:01:06 +02:00
George Beckstein b9f2367271 Add CANMessage deep comparison operators 2021-05-18 08:33:22 -04:00
Martin Kojtal 3af058af8b i2c: `start()` should aquire the bus
From the history it looks like aquire was not added explicitely to start. I do not see
why as it's the condition that must be sent when communication is initiated.

write/read/transfer invoke `aquire()`
2021-05-18 12:28:13 +01:00
Martin Kojtal c02e101e9f
Merge pull request #14336 from AGlass0fMilk/polymorphic-can
Implement polymorphism for CAN driver
2021-05-12 10:17:28 +02:00
Rajkumar Kanagaraj 2bafdf82e7 CMake: Refactor drivers unittest cmake 2021-05-11 02:29:56 -07:00
Rajkumar Kanagaraj ba04c1cf76 CMake: Add add_subdirectory of unittests
- add every libraries unittest directory into respective CMake
  which allows to include unittest source into build based on
  MBED_BUILD_UNITTESTS flag
2021-05-11 02:29:56 -07:00
Martin Kojtal e18d280ede
Merge pull request #14588 from Patater/mbed-libs-for-m55
Add v8.1-M architecture awareness
2021-05-10 15:13:33 +02:00
George Beckstein d39a4168ec Replace NonCopyable in CAN inheritance.
This commit moves the deletion of copy constructor and copy assignment operators to the `mbed::interface::can` class, where both `mbed::CAN` and `mbed::interface::CAN` inherit enum types from. This allows `NonCopyable` to be removed from the inheritance list.
2021-05-07 21:02:34 -04:00
George Beckstein d79446c0da Fix astyle CI failures 2021-05-06 02:09:54 -04:00
George Beckstein 49e58ddab6 Make interface::CAN buildable on targets without DEVICE_CAN
This commit adds provisions to enable using interface::CAN on targets that don't have DEVICE_CAN set to 1 (ie: they don't normally have a CAN peripheral).
2021-05-04 02:23:51 -04:00
George Beckstein d6104c8194 Enable inheritance of CAN enum types
This commit changes the `interface::can` namespace to a `struct`. This allows the enum types to be inherited and prevents breaking old code relying on referencing eg: `CAN::RxIrq`.

When enabled, the polymorphic CAN interface class inherits from this `interface::can` struct. If not enabled, the `mbed::CAN` class inherits from `interface::can` directly.

Co-authored-by: Vincent Coubard <vincent.coubard@arm.com>
2021-05-04 01:29:20 -04:00
George Beckstein be077713b3 Implement polymorphism for CAN 2021-05-04 01:11:32 -04:00
Martin Kojtal 331473a706
Merge pull request #14589 from plan-do-break-fix/Typo-corrections
fix(docs): corrects various typos in project documentation
2021-04-28 13:36:37 +01:00
plan-do-break-fix 915b45af23 fix(docs): corrects various typos in project documentation 2021-04-23 23:31:11 -05:00
Jaeden Amero 5d20374bc3 Add v8.1-M architecture awareness
Add v8.1-M architecture awareness to Mbed CRC, HAL, and Mbed Atomic.

Fixes #14433
2021-04-23 15:01:16 +01:00
Lingkai Dong 42c3c927de Fix DeviceKey documentation regarding RoT
Since the commit

    0e7a53c DeviceKey Root of Trust generation refactored.

the Root of Trust is not automatically generated anymore.
2021-04-15 12:15:50 +01:00
Anna Bridge 0742135fd1
Merge pull request #14457 from ARMmbed/uart-stdio-alias
Update UART pin names & add MBED_CONF_TARGET_STDIO_UART overrides
2021-03-26 15:17:58 +00:00
Anna Bridge dddd6341f5
Merge pull request #14437 from ARMmbed/qspi-fix
Remove ownership/acquire in QSPI/OSPI driver
2021-03-26 14:52:52 +00:00
George Psimenos 8600157f62 Replace USBTX/RX 2021-03-24 15:00:53 +00:00
George Psimenos cd5330e5a9 Replace USBTX/RX everywhere else 2021-03-24 10:11:30 +00:00
Martin Kojtal 96e19afdd1
Merge pull request #14396 from LDong-Arm/tfm_os_wrapper
TF-M: Switch to vanilla TF-M's OS wrapper
2021-03-22 12:06:04 +01:00
George Psimenos 0b4fdb5e70 Remove ownership in OSPI driver 2021-03-18 17:12:19 +00:00
George Psimenos a28a8684c9 Remove ownership in QSPI driver 2021-03-17 13:26:25 +00:00
Lingkai Dong 6c405d2492 USB: use fully-qualified RTOS include paths
The Arm Compiler is case sensitive and unable to distinguish
between `Thread.h` from Mbed OS RTOS and `thread.h` from TF-M's
OS wrapper, for example. This resolves compilation failures due to
wrong includes.

To resolve this, use the fully-qualified include paths for the
RTOS API.
2021-03-17 09:41:56 +00:00
George Beckstein 78cfad97d8 Remove virtual from interface operator definitions 2021-03-09 13:22:14 -05:00
George Beckstein 78e33b0926 astyle fixes 2021-03-09 13:01:06 -05:00
George Beckstein 326f5bb898 Implement polymorphism for DigitalInOut
Co-authored-by: Vincent Coubard (pan-) <Vincent.Coubard@arm.com>
2021-03-09 13:01:06 -05:00
George Beckstein 2e6a5522d2 Implement polymorphism for DigitalOut 2021-03-09 13:01:06 -05:00
George Beckstein c64091519f Implement polymorphism for DigitalIn 2021-03-09 13:01:06 -05:00
Martin Kojtal e6565a4486
Merge pull request #14031 from arduino/blockdevices_namespaces
BlockDevices: specify mbed namespace where needed
2021-02-04 20:08:07 +00:00
Rajkumar Kanagaraj 6824b14e48 CMake: rename greentea test macro 2021-02-02 07:43:40 -08:00
Oliver Wildtgrube 6b0215c687 fix namespaces for MBED_NO_GLOBAL_USING_DIRECTIVE feature
added namespaces in various files
2021-02-02 12:49:11 +01:00
Harrison Mutai 619ca54735 Remove lock from enable_* function overrides 2021-01-21 11:09:50 +00:00
Harrison Mutai 0214a156e7 Implement override of enable_* functions 2021-01-21 10:20:49 +00:00
Harrison Mutai 7b8ca37bd7 Add declaration to expose enable_* functions from SerialBase
UnBufferedSerial is missing a declaration to expose enable_input and
enable_output, which are inherited from the private base class Serial
Base. Add the using-declaration to the class definition.
2021-01-19 14:28:54 +00:00
Martin Kojtal aef93ca7c9
Merge pull request #14020 from pea-pod/stm-spi-more-bits
Add SPI bitwidths to ST targets where supported
2021-01-15 10:01:28 +00:00
pea-pod e1c754b179 Add SPI bitwidths to ST targets where supported 2021-01-11 07:53:07 -06:00
Rajkumar Kanagaraj 20fb74f829 Add CMake support 2021-01-05 09:10:05 -08:00
Ahmet Alincak 9eec40873b Add internal subfolder to USBDriver's CMakelists
To build USB Drivers for targets which have USBDevice attribute,
subfolder added as header file path.
2020-12-18 13:54:59 +03:00
Hugues Kamba 5082e957e2 CMake: Remove TODO note in device_key list input source file
The Device Key API is a security API that relies on storage. It is not a storage API
2020-12-16 11:47:51 +00:00
Anna Bridge 9f18c445ee
Merge pull request #13908 from LDong-Arm/kvstore_libraries
Restructure KVStore to one library per store type
2020-12-11 13:41:16 +00:00
Martin Kojtal be295e42a4
Merge pull request #13917 from LDong-Arm/move_SFDP
Move SFDP to blockdevice
2020-12-10 13:03:23 +00:00
Lingkai Dong c2cc43875a CMake: add missing linkages of storage libraries 2020-12-09 17:26:32 +00:00
Lingkai Dong 386926615c CMake fix: SFDP already moved to BlockDevice 2020-12-09 17:26:32 +00:00
Lingkai Dong 8ba64c4139 Update include paths 2020-12-09 17:20:42 +00:00
Martin Kojtal 4c94b4b495
Merge pull request #14005 from kjbracey-arm/teinsert
Correct/clarify TimerEvent::insert documentation
2020-12-09 14:18:06 +00:00
Kevin Bracey cf66a6ed13 Correct/clarify TimerEvent::insert documentation
There was much confusion over the functionality of the original
`TimerEvent::insert` call which was described as "Set relative timestamp
of the internal event".

This then extended to my Chrono conversion, meaning the new `insert`
call is not equivalent.

Clarify the original documentation, correct the deprecation messages,
and add more notes on conversion.

No functional change, as the new Chrono API makes more sense - it's just
different from the old API.

Problem actually spotted when I saw the strange code `convert_timestamp`
was producing for the 32-bit->64-bit timestamp conversion. The caller of
it was actually making the mistake of issuing
"TimerEvent::insert(rel_timeout)`, meaning they'd also misunderstood the
documentation, and were not getting the timeout they expected.

(Chrono would have prevented that mistake as durations and time points
are incompatible types).
2020-12-07 16:28:52 +02:00
Lingkai Dong 562b31ccd3 Move SFDP unit tests 2020-12-07 12:05:07 +00:00
Lingkai Dong 5d2fbdc11e Move SFDP into blockdevice where it belongs to 2020-11-26 17:31:31 +00:00
Martin Kojtal 61e4b55a22
Merge pull request #13947 from LDong-Arm/erase_algorithm_fix
Fix erase type determination for [Q/O/]BlockDevice::erase()
2020-11-26 15:53:03 +00:00
Lingkai Dong c41f7cb864 Fix integer type warnings in SFDP and *SPIFBlockDevice 2020-11-26 10:28:58 +00:00
Lingkai Dong fb0f9687e4 Initial unit test for SFDP
As a starting point, only sfdp_iterate_next_largest_erase_type(),
which the pull request is intended to fix, is tested. More test
cases shall be added in the future.
2020-11-26 09:55:47 +00:00
Lingkai Dong e0bd9a1c6a sfdp_iterate_next_largest_erase_type: return -1 if no erase type is applicable 2020-11-25 13:34:01 +00:00
Lingkai Dong ac86aff928 sfdp_iterate_next_largest_erase_type: do not modify type_mask
The supported erase types of a given flash region are indicated
in bitfields of the variable `type_mask`. Even if an erase type
is unused for the current chunk (e.g. size too large, unaligned, etc.),
its bitfield should NOT be cleared - the same erase type might
actually be useful for the next chunk.

The function argument is now a value instead of a reference.
2020-11-24 18:07:34 +00:00
Martin Kojtal 57bbb4739b
Merge pull request #13085 from pea-pod/remove-deprecated-mbed-assert
Change MBED_STATIC_ASSERTs version for built-in
2020-11-24 13:38:07 +00:00
Lingkai Dong 52627dbc59 sfdp_iterate_next_largest_erase_type: fix size check and add alignment check 2020-11-23 15:45:43 +00:00
Evelyne Donnaes b7c6bd34f5 Updated CMakeLists.txt 2020-11-12 15:34:47 +00:00
Evelyne Donnaes 30e9050f10 Moved USB greentea tests 2020-11-12 14:57:01 +00:00
Evelyne Donnaes 9964212f9e Moved USB drivers under drivers/usb 2020-11-12 14:57:00 +00:00
Martin Kojtal f333c3ead1
Merge pull request #13699 from boraozgen/bugfix/sfdp-find-addr-region
Fix sfdp_find_addr_region algorithm
2020-11-12 08:43:02 +00:00
Martin Kojtal e8a3282181
Merge pull request #13816 from pennam/patch-stm32-usbhs-pull
STM32: allow HS USB endpoints and increase USB OTG_HS endpoints number
2020-11-11 08:27:19 +00:00
Martino Facchin db7954bc9b STM32: allow high speed USB endpoints 2020-11-10 17:22:28 +01:00
Hugues Kamba 794e32df74 CMake: Use relative paths to list source files and directories
The absolute path is still required for listing linker
files as they are referenced from a function in the top
level CMake input source file.
2020-11-09 12:32:30 +00:00