mirror of https://github.com/ARMmbed/mbed-os.git
Merge pull request #11928 from SeppoTakalo/assert_throw
Allow MBED_ASSERT to throw errors in unittests, so we can verify it.pull/11938/head
commit
7fbe0c6b41
|
@ -19,7 +19,7 @@ set(unittest-sources
|
|||
set(unittest-test-sources
|
||||
drivers/PwmOut/test_pwmout.cpp
|
||||
stubs/mbed_critical_stub.c
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/pwmout_api_stub.c
|
||||
)
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ set(unittest-sources
|
|||
set(unittest-test-sources
|
||||
drivers/Watchdog/test_watchdog.cpp
|
||||
stubs/mbed_critical_stub.c
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/watchdog_api_stub.c
|
||||
)
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ set(unittest-sources
|
|||
# Test files
|
||||
set(unittest-test-sources
|
||||
features/cellular/framework/AT/at_cellularbase/at_cellularbasetest.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/ATHandler_stub.cpp
|
||||
stubs/EventQueue_stub.cpp
|
||||
stubs/FileHandle_stub.cpp
|
||||
|
|
|
@ -30,7 +30,7 @@ set(unittest-test-sources
|
|||
stubs/equeue_stub.c
|
||||
stubs/EventQueue_stub.cpp
|
||||
stubs/FileHandle_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/NetworkInterface_stub.cpp
|
||||
stubs/NetworkInterfaceDefaults_stub.cpp
|
||||
stubs/NetworkStack_stub.cpp
|
||||
|
|
|
@ -34,7 +34,7 @@ set(unittest-test-sources
|
|||
stubs/NetworkInterfaceDefaults_stub.cpp
|
||||
stubs/EventQueue_stub.cpp
|
||||
stubs/FileHandle_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/CellularDevice_stub.cpp
|
||||
stubs/NetworkStack_stub.cpp
|
||||
stubs/AT_CellularContext_stub.cpp
|
||||
|
|
|
@ -24,7 +24,7 @@ set(unittest-test-sources
|
|||
stubs/AT_CellularBase_stub.cpp
|
||||
stubs/EventQueue_stub.cpp
|
||||
stubs/FileHandle_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/ConditionVariable_stub.cpp
|
||||
stubs/Mutex_stub.cpp
|
||||
)
|
||||
|
|
|
@ -25,7 +25,7 @@ set(unittest-test-sources
|
|||
stubs/EventQueue_stub.cpp
|
||||
stubs/FileHandle_stub.cpp
|
||||
stubs/us_ticker_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/SocketAddress_stub.cpp
|
||||
stubs/randLIB_stub.cpp
|
||||
stubs/ConditionVariable_stub.cpp
|
||||
|
|
|
@ -25,7 +25,7 @@ set(unittest-test-sources
|
|||
stubs/FileHandle_stub.cpp
|
||||
stubs/CellularUtil_stub.cpp
|
||||
stubs/us_ticker_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/ThisThread_stub.cpp
|
||||
stubs/mbed_wait_api_stub.cpp
|
||||
stubs/ConditionVariable_stub.cpp
|
||||
|
|
|
@ -27,7 +27,7 @@ set(unittest-test-sources
|
|||
stubs/us_ticker_stub.cpp
|
||||
stubs/NetworkStack_stub.cpp
|
||||
stubs/SocketAddress_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/ThisThread_stub.cpp
|
||||
stubs/ConditionVariable_stub.cpp
|
||||
stubs/Mutex_stub.cpp
|
||||
|
|
|
@ -27,7 +27,7 @@ set(unittest-test-sources
|
|||
stubs/us_ticker_stub.cpp
|
||||
stubs/UARTSerial_stub.cpp
|
||||
stubs/SerialBase_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/mbed_poll_stub.cpp
|
||||
stubs/Timer_stub.cpp
|
||||
stubs/equeue_stub.c
|
||||
|
|
|
@ -22,7 +22,7 @@ set(unittest-test-sources
|
|||
stubs/FileHandle_stub.cpp
|
||||
stubs/CellularStateMachine_stub.cpp
|
||||
stubs/EventQueue_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/UARTSerial_stub.cpp
|
||||
stubs/SerialBase_stub.cpp
|
||||
stubs/ATHandler_stub.cpp
|
||||
|
|
|
@ -22,7 +22,7 @@ set(unittest-test-sources
|
|||
stubs/FileHandle_stub.cpp
|
||||
stubs/CellularStateMachine_stub.cpp
|
||||
stubs/EventQueue_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/UARTSerial_stub.cpp
|
||||
stubs/SerialBase_stub.cpp
|
||||
stubs/ATHandler_stub.cpp
|
||||
|
|
|
@ -22,7 +22,7 @@ set(unittest-test-sources
|
|||
stubs/FileHandle_stub.cpp
|
||||
stubs/CellularDevice_stub.cpp
|
||||
stubs/EventQueue_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/UARTSerial_stub.cpp
|
||||
stubs/SerialBase_stub.cpp
|
||||
stubs/ATHandler_stub.cpp
|
||||
|
|
|
@ -34,7 +34,7 @@ set(unittest-test-sources
|
|||
features/lorawan/loramac/Test_LoRaMac.cpp
|
||||
stubs/LoRaPHY_stub.cpp
|
||||
stubs/LoRaWANStack_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/LoRaMacCrypto_stub.cpp
|
||||
stubs/LoRaMacChannelPlan_stub.cpp
|
||||
stubs/LoRaWANTimer_stub.cpp
|
||||
|
|
|
@ -32,7 +32,7 @@ set(unittest-includes ${unittest-includes}
|
|||
# Test & stub files
|
||||
set(unittest-test-sources
|
||||
features/lorawan/loramaccommand/Test_LoRaMacCommand.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/LoRaPHY_stub.cpp
|
||||
)
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@ set(unittest-test-sources
|
|||
stubs/cipher_stub.c
|
||||
stubs/aes_stub.c
|
||||
stubs/cmac_stub.c
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
../features/nanostack/coap-service/test/coap-service/unittest/stub/mbedtls_stub.c
|
||||
|
||||
)
|
||||
|
|
|
@ -33,7 +33,7 @@ set(unittest-includes ${unittest-includes}
|
|||
set(unittest-test-sources
|
||||
features/lorawan/loraphy/Test_LoRaPHY.cpp
|
||||
stubs/LoRaWANTimer_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
)
|
||||
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ set(unittest-test-sources
|
|||
features/lorawan/loraphyas923/Test_LoRaPHYAS923.cpp
|
||||
stubs/LoRaPHY_stub.cpp
|
||||
stubs/LoRaWANTimer_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
|
||||
)
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ set(unittest-test-sources
|
|||
features/lorawan/loraphyau915/Test_LoRaPHYAU915.cpp
|
||||
stubs/LoRaPHY_stub.cpp
|
||||
stubs/LoRaWANTimer_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
|
||||
)
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ set(unittest-test-sources
|
|||
features/lorawan/loraphycn470/Test_LoRaPHYCN470.cpp
|
||||
stubs/LoRaPHY_stub.cpp
|
||||
stubs/LoRaWANTimer_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
|
||||
)
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ set(unittest-includes ${unittest-includes}
|
|||
set(unittest-test-sources
|
||||
features/lorawan/loraphycn779/Test_LoRaPHYCN779.cpp
|
||||
stubs/LoRaPHY_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
|
||||
)
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ set(unittest-includes ${unittest-includes}
|
|||
set(unittest-test-sources
|
||||
features/lorawan/loraphyeu433/Test_LoRaPHYEU433.cpp
|
||||
stubs/LoRaPHY_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
|
||||
)
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ set(unittest-includes ${unittest-includes}
|
|||
set(unittest-test-sources
|
||||
features/lorawan/loraphyeu868/Test_LoRaPHYEU868.cpp
|
||||
stubs/LoRaPHY_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
|
||||
)
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ set(unittest-includes ${unittest-includes}
|
|||
set(unittest-test-sources
|
||||
features/lorawan/loraphyin865/Test_LoRaPHYIN865.cpp
|
||||
stubs/LoRaPHY_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
|
||||
)
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ set(unittest-test-sources
|
|||
features/lorawan/loraphykr920/Test_LoRaPHYKR920.cpp
|
||||
stubs/LoRaPHY_stub.cpp
|
||||
stubs/LoRaWANTimer_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
|
||||
)
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ set(unittest-test-sources
|
|||
features/lorawan/loraphyus915/Test_LoRaPHYUS915.cpp
|
||||
stubs/LoRaPHY_stub.cpp
|
||||
stubs/LoRaWANTimer_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
|
||||
)
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@ set(unittest-test-sources
|
|||
stubs/LoRaPHY_stub.cpp
|
||||
stubs/LoRaWANStack_stub.cpp
|
||||
stubs/LoRaMac_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/LoRaMacCrypto_stub.cpp
|
||||
stubs/LoRaMacChannelPlan_stub.cpp
|
||||
stubs/LoRaWANTimer_stub.cpp
|
||||
|
|
|
@ -34,7 +34,7 @@ set(unittest-test-sources
|
|||
features/lorawan/lorawanstack/Test_LoRaWANStack.cpp
|
||||
stubs/LoRaPHY_stub.cpp
|
||||
stubs/LoRaMac_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/mbed_atomic_stub.c
|
||||
stubs/LoRaMacCrypto_stub.cpp
|
||||
stubs/LoRaMacChannelPlan_stub.cpp
|
||||
|
|
|
@ -33,7 +33,7 @@ set(unittest-includes ${unittest-includes}
|
|||
set(unittest-test-sources
|
||||
features/lorawan/lorawantimer/Test_LoRaWANTimer.cpp
|
||||
stubs/EventQueue_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/equeue_stub.c
|
||||
)
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ set(unittest-sources
|
|||
set(unittest-test-sources
|
||||
features/netsocket/DTLSSocket/test_DTLSSocket.cpp
|
||||
stubs/Mutex_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/mbed_atomic_stub.c
|
||||
stubs/mbed_critical_stub.c
|
||||
stubs/equeue_stub.c
|
||||
|
|
|
@ -21,7 +21,7 @@ set(unittest-sources
|
|||
set(unittest-test-sources
|
||||
features/netsocket/DTLSSocketWrapper/test_DTLSSocketWrapper.cpp
|
||||
stubs/Mutex_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/mbed_atomic_stub.c
|
||||
stubs/mbed_critical_stub.c
|
||||
stubs/equeue_stub.c
|
||||
|
|
|
@ -25,7 +25,7 @@ set(unittest-sources
|
|||
set(unittest-test-sources
|
||||
features/netsocket/EthernetInterface/test_EthernetInterface.cpp
|
||||
stubs/Mutex_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/equeue_stub.c
|
||||
stubs/EventQueue_stub.cpp
|
||||
stubs/mbed_shared_queues_stub.cpp
|
||||
|
|
|
@ -17,7 +17,7 @@ set(unittest-sources
|
|||
set(unittest-test-sources
|
||||
features/netsocket/InternetSocket/test_InternetSocket.cpp
|
||||
stubs/Mutex_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/mbed_atomic_stub.c
|
||||
stubs/mbed_critical_stub.c
|
||||
stubs/equeue_stub.c
|
||||
|
|
|
@ -19,7 +19,7 @@ set(unittest-sources
|
|||
# Test files
|
||||
set(unittest-test-sources
|
||||
stubs/Mutex_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/equeue_stub.c
|
||||
stubs/EventQueue_stub.cpp
|
||||
stubs/mbed_shared_queues_stub.cpp
|
||||
|
|
|
@ -21,7 +21,7 @@ set(unittest-sources
|
|||
# Test files
|
||||
set(unittest-test-sources
|
||||
stubs/Mutex_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/equeue_stub.c
|
||||
stubs/EventQueue_stub.cpp
|
||||
stubs/mbed_error.c
|
||||
|
|
|
@ -21,7 +21,7 @@ set(unittest-sources
|
|||
|
||||
set(unittest-test-sources
|
||||
stubs/Mutex_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/mbed_atomic_stub.c
|
||||
stubs/mbed_critical_stub.c
|
||||
stubs/equeue_stub.c
|
||||
|
|
|
@ -18,7 +18,7 @@ set(unittest-sources
|
|||
set(unittest-test-sources
|
||||
features/netsocket/TCPSocket/test_TCPSocket.cpp
|
||||
stubs/Mutex_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/mbed_atomic_stub.c
|
||||
stubs/mbed_critical_stub.c
|
||||
stubs/equeue_stub.c
|
||||
|
|
|
@ -20,7 +20,7 @@ set(unittest-sources
|
|||
set(unittest-test-sources
|
||||
features/netsocket/TLSSocket/test_TLSSocket.cpp
|
||||
stubs/Mutex_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/mbed_atomic_stub.c
|
||||
stubs/mbed_critical_stub.c
|
||||
stubs/equeue_stub.c
|
||||
|
|
|
@ -19,7 +19,7 @@ set(unittest-sources
|
|||
set(unittest-test-sources
|
||||
features/netsocket/TLSSocketWrapper/test_TLSSocketWrapper.cpp
|
||||
stubs/Mutex_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/mbed_atomic_stub.c
|
||||
stubs/mbed_critical_stub.c
|
||||
stubs/equeue_stub.c
|
||||
|
|
|
@ -19,7 +19,7 @@ set(unittest-sources
|
|||
set(unittest-test-sources
|
||||
features/netsocket/UDPSocket/test_UDPSocket.cpp
|
||||
stubs/Mutex_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/mbed_atomic_stub.c
|
||||
stubs/mbed_critical_stub.c
|
||||
stubs/equeue_stub.c
|
||||
|
|
|
@ -20,5 +20,5 @@ set(unittest-test-sources
|
|||
stubs/EventFlags_stub.cpp
|
||||
stubs/Mutex_stub.cpp
|
||||
stubs/CellularContext_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
)
|
||||
|
|
|
@ -21,7 +21,7 @@ set(unittest-sources
|
|||
set(unittest-test-sources
|
||||
stubs/Mutex_stub.cpp
|
||||
../features/netsocket/SocketAddress.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/NetworkStack_stub.cpp
|
||||
stubs/NetworkInterfaceDefaults_stub.cpp
|
||||
stubs/mbed_atomic_stub.c
|
||||
|
|
|
@ -50,6 +50,12 @@ TEST_F(HeapBlockDeviceTest, constructor)
|
|||
EXPECT_EQ(one.deinit(), BD_ERROR_OK);
|
||||
}
|
||||
|
||||
TEST_F(HeapBlockDeviceTest, constructor_wrong_size)
|
||||
{
|
||||
mbed_assert_throw_errors=true;
|
||||
ASSERT_ANY_THROW(mbed::HeapBlockDevice one(3050, 100));
|
||||
}
|
||||
|
||||
TEST_F(HeapBlockDeviceTest, double_init)
|
||||
{
|
||||
mbed::HeapBlockDevice one{DEVICE_SIZE};
|
||||
|
|
|
@ -11,7 +11,7 @@ set(unittest-includes ${unittest-includes}
|
|||
set(unittest-sources
|
||||
../features/storage/blockdevice/HeapBlockDevice.cpp
|
||||
stubs/mbed_atomic_stub.c
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
)
|
||||
|
||||
set(unittest-test-sources
|
||||
|
|
|
@ -12,7 +12,7 @@ set(unittest-sources
|
|||
../features/storage/blockdevice/SlicingBlockDevice.cpp
|
||||
../features/storage/blockdevice/HeapBlockDevice.cpp
|
||||
stubs/mbed_atomic_stub.c
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
)
|
||||
|
||||
set(unittest-test-sources
|
||||
|
|
|
@ -11,6 +11,6 @@ set(unittest-sources
|
|||
set(unittest-test-sources
|
||||
platform/ATCmdParser/test_ATCmdParser.cpp
|
||||
stubs/FileHandle_stub.cpp
|
||||
stubs/mbed_assert_stub.c
|
||||
stubs/mbed_assert_stub.cpp
|
||||
stubs/mbed_poll_stub.cpp
|
||||
)
|
||||
|
|
|
@ -17,9 +17,14 @@
|
|||
|
||||
#include "platform/mbed_assert.h"
|
||||
#include <stdio.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
void mbed_assert_internal(const char *expr, const char *file, int line)
|
||||
bool mbed_assert_throw_errors = false;
|
||||
|
||||
extern "C" void mbed_assert_internal(const char *expr, const char *file, int line)
|
||||
{
|
||||
fprintf(stderr, "mbed assertation failed: %s, file: %s, line %d \n", expr, file, line);
|
||||
if (mbed_assert_throw_errors) {
|
||||
throw 1;
|
||||
}
|
||||
}
|
||||
|
|
@ -50,6 +50,12 @@ void mbed_assert_internal(const char *expr, const char *file, int line);
|
|||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* For unittests: Global flag to select whether MBED_ASSERT
|
||||
* throws error. Default false.
|
||||
*/
|
||||
extern bool mbed_assert_throw_errors;
|
||||
|
||||
/** MBED_ASSERT
|
||||
* Declare runtime assertions: results in runtime error if condition is false
|
||||
*
|
||||
|
@ -63,18 +69,12 @@ void mbed_assert_internal(const char *expr, const char *file, int line);
|
|||
* }
|
||||
* @endcode
|
||||
*/
|
||||
#if defined( NDEBUG ) && !defined (MBED_WDOG_ASSERT)
|
||||
#define MBED_ASSERT(expr) ((void)0)
|
||||
#else
|
||||
#define MBED_ASSERT(expr) \
|
||||
do { \
|
||||
if (!(expr)) { \
|
||||
mbed_assert_internal(#expr, __FILE__, __LINE__); \
|
||||
} \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/** MBED_STATIC_ASSERT
|
||||
* Declare compile-time assertions, results in compile-time error if condition is false
|
||||
|
|
Loading…
Reference in New Issue