Fork of mbed-os by erkin yucel

Committer:
xuaner
Date:
Thu Jul 20 14:26:57 2017 +0000
Revision:
1:3deb71413561
Parent:
0:f269e3021894
mbed_os

Who changed what in which revision?

UserRevisionLine numberNew contents of line
elessair 0:f269e3021894 1 #include <stdio.h>
elessair 0:f269e3021894 2 #include <stdint.h>
elessair 0:f269e3021894 3
elessair 0:f269e3021894 4 #include "toolchain.h"
elessair 0:f269e3021894 5 #include "greentea-client/test_env.h"
elessair 0:f269e3021894 6 #include "unity.h"
elessair 0:f269e3021894 7 #include "utest.h"
elessair 0:f269e3021894 8
elessair 0:f269e3021894 9 using namespace utest::v1;
elessair 0:f269e3021894 10
elessair 0:f269e3021894 11
elessair 0:f269e3021894 12 // Test functions declared as C functions to avoid issues with name mangling
elessair 0:f269e3021894 13 extern "C" {
elessair 0:f269e3021894 14 int testPacked();
elessair 0:f269e3021894 15 int testAlign();
elessair 0:f269e3021894 16 int testUnused();
elessair 0:f269e3021894 17 int testWeak();
elessair 0:f269e3021894 18 int testPure();
elessair 0:f269e3021894 19 int testForceInline();
elessair 0:f269e3021894 20 int testNoReturn();
elessair 0:f269e3021894 21 int testUnreachable();
elessair 0:f269e3021894 22 int testDeprecated();
elessair 0:f269e3021894 23 }
elessair 0:f269e3021894 24
elessair 0:f269e3021894 25
elessair 0:f269e3021894 26 // Test wrapper and test cases for utest
elessair 0:f269e3021894 27 template <int (*F)()>
elessair 0:f269e3021894 28 void test_wrapper() {
elessair 0:f269e3021894 29 TEST_ASSERT_UNLESS(F());
elessair 0:f269e3021894 30 }
elessair 0:f269e3021894 31
elessair 0:f269e3021894 32 utest::v1::status_t test_setup(const size_t number_of_cases) {
elessair 0:f269e3021894 33 GREENTEA_SETUP(5, "default_auto");
elessair 0:f269e3021894 34 return verbose_test_setup_handler(number_of_cases);
elessair 0:f269e3021894 35 }
elessair 0:f269e3021894 36
elessair 0:f269e3021894 37 Case cases[] = {
elessair 0:f269e3021894 38 Case("Testing PACKED attribute", test_wrapper<testPacked>),
elessair 0:f269e3021894 39 Case("Testing ALIGN attribute", test_wrapper<testAlign>),
elessair 0:f269e3021894 40 Case("Testing UNUSED attribute", test_wrapper<testUnused>),
elessair 0:f269e3021894 41 Case("Testing WEAK attribute", test_wrapper<testWeak>),
elessair 0:f269e3021894 42 Case("Testing PURE attribute", test_wrapper<testPure>),
elessair 0:f269e3021894 43 Case("Testing FORCEINLINE attribute", test_wrapper<testForceInline>),
elessair 0:f269e3021894 44 Case("Testing NORETURN attribute", test_wrapper<testNoReturn>),
elessair 0:f269e3021894 45 Case("Testing UNREACHABLE attribute", test_wrapper<testUnreachable>),
elessair 0:f269e3021894 46 Case("Testing DEPRECATED attribute", test_wrapper<testDeprecated>),
elessair 0:f269e3021894 47 };
elessair 0:f269e3021894 48
elessair 0:f269e3021894 49 Specification specification(test_setup, cases);
elessair 0:f269e3021894 50
elessair 0:f269e3021894 51 int main() {
elessair 0:f269e3021894 52 return !Harness::run(specification);
elessair 0:f269e3021894 53 }