Merge pull request #11928 from SeppoTakalo/assert_throw

Allow MBED_ASSERT to throw errors in unittests, so we can verify it.
pull/11938/head
Martin Kojtal 2019-11-25 13:11:41 +01:00 committed by GitHub
commit 7fbe0c6b41
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
48 changed files with 64 additions and 53 deletions

View File

@ -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
)

View File

@ -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
)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
)

View File

@ -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
)

View File

@ -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
)

View File

@ -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
)

View File

@ -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
)

View File

@ -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
)

View File

@ -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
)

View File

@ -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
)

View File

@ -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
)

View File

@ -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
)

View File

@ -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
)

View File

@ -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
)

View File

@ -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

View File

@ -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

View File

@ -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
)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
)

View File

@ -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

View File

@ -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};

View File

@ -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

View File

@ -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

View File

@ -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
)

View File

@ -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;
}
}

View File

@ -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