mirror of https://github.com/ARMmbed/mbed-os.git
Added attribute tests from compiler-polyfill
from https://github.com/ARMmbed/compiler-polyfill/tree/master/test/attributes
parent
8381fda624
commit
f05240b666
|
@ -0,0 +1,61 @@
|
|||
#include "toolchain.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
|
||||
|
||||
struct TestAttrPackedStruct {
|
||||
char a;
|
||||
int x;
|
||||
} PACKED;
|
||||
|
||||
int testPacked() {
|
||||
int failed = 0;
|
||||
|
||||
if (sizeof(struct TestAttrPackedStruct) != sizeof(int) + sizeof(char)) {
|
||||
failed++;
|
||||
}
|
||||
|
||||
return failed;
|
||||
}
|
||||
|
||||
|
||||
int testUnused1(UNUSED int arg) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int testUnused() {
|
||||
return testUnused1(0);
|
||||
}
|
||||
|
||||
|
||||
DEPRECATED("this message should not be displayed")
|
||||
void testDeprecatedUnused();
|
||||
void testDeprecatedUnused() { }
|
||||
|
||||
DEPRECATED("this message should be displayed")
|
||||
int testDeprecatedUsed();
|
||||
int testDeprecatedUsed() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int testDeprecated() {
|
||||
return testDeprecatedUsed();
|
||||
}
|
||||
|
||||
|
||||
int testWeak1();
|
||||
int testWeak2();
|
||||
|
||||
WEAK int testWeak1() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
int testWeak2() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int testWeak() {
|
||||
return testWeak1() | testWeak2();
|
||||
}
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include "toolchain.h"
|
||||
#include "test_env.h"
|
||||
#include "unity.h"
|
||||
#include "utest.h"
|
||||
|
||||
using namespace utest::v1;
|
||||
|
||||
|
||||
// Test functions declared as C functions to avoid issues with name mangling
|
||||
extern "C" {
|
||||
int testPacked();
|
||||
int testUnused();
|
||||
int testDeprecated();
|
||||
int testWeak();
|
||||
}
|
||||
|
||||
|
||||
// Test wrapper and test cases for utest
|
||||
template <int (*F)()>
|
||||
void test_wrapper() {
|
||||
TEST_ASSERT_UNLESS(F());
|
||||
}
|
||||
|
||||
status_t test_setup(const size_t number_of_cases) {
|
||||
GREENTEA_SETUP(40, "default_auto");
|
||||
return verbose_test_setup_handler(number_of_cases);
|
||||
}
|
||||
|
||||
Case cases[] = {
|
||||
Case("Testing PACKED attribute", test_wrapper<testPacked>),
|
||||
Case("Testing UNUSED attribute", test_wrapper<testUnused>),
|
||||
Case("Testing DEPRECATED attribute", test_wrapper<testDeprecated>),
|
||||
Case("Testing WEAK attribute", test_wrapper<testWeak>),
|
||||
};
|
||||
|
||||
Specification specification(test_setup, cases);
|
||||
|
||||
int main() {
|
||||
return !Harness::run(specification);
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
#include "toolchain.h"
|
||||
|
||||
int testWeak1() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
WEAK int testWeak2() {
|
||||
return 1;
|
||||
}
|
||||
|
Loading…
Reference in New Issue