ON Semiconductor / mbed-os

Dependents:   mbed-TFT-example-NCS36510 mbed-Accelerometer-example-NCS36510 mbed-Accelerometer-example-NCS36510

Committer:
group-onsemi
Date:
Wed Jan 25 20:34:15 2017 +0000
Revision:
0:098463de4c5d
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
group-onsemi 0:098463de4c5d 1 #include "test_env.h"
group-onsemi 0:098463de4c5d 2
group-onsemi 0:098463de4c5d 3 #define PATTERN_CHECK_VALUE 0xF0F0ADAD
group-onsemi 0:098463de4c5d 4
group-onsemi 0:098463de4c5d 5 class Test {
group-onsemi 0:098463de4c5d 6
group-onsemi 0:098463de4c5d 7 private:
group-onsemi 0:098463de4c5d 8 const char* name;
group-onsemi 0:098463de4c5d 9 const int pattern;
group-onsemi 0:098463de4c5d 10
group-onsemi 0:098463de4c5d 11 public:
group-onsemi 0:098463de4c5d 12 Test(const char* _name) : name(_name), pattern(PATTERN_CHECK_VALUE) {
group-onsemi 0:098463de4c5d 13 print("init");
group-onsemi 0:098463de4c5d 14 }
group-onsemi 0:098463de4c5d 15
group-onsemi 0:098463de4c5d 16 void print(const char *message) {
group-onsemi 0:098463de4c5d 17 printf("%s::%s\n", name, message);
group-onsemi 0:098463de4c5d 18 }
group-onsemi 0:098463de4c5d 19
group-onsemi 0:098463de4c5d 20 bool check_init(void) {
group-onsemi 0:098463de4c5d 21 bool result = (pattern == PATTERN_CHECK_VALUE);
group-onsemi 0:098463de4c5d 22 print(result ? "check_init: OK" : "check_init: ERROR");
group-onsemi 0:098463de4c5d 23 return result;
group-onsemi 0:098463de4c5d 24 }
group-onsemi 0:098463de4c5d 25
group-onsemi 0:098463de4c5d 26 void stack_test(void) {
group-onsemi 0:098463de4c5d 27 print("stack_test");
group-onsemi 0:098463de4c5d 28 Test t("Stack");
group-onsemi 0:098463de4c5d 29 t.hello();
group-onsemi 0:098463de4c5d 30 }
group-onsemi 0:098463de4c5d 31
group-onsemi 0:098463de4c5d 32 void hello(void) {
group-onsemi 0:098463de4c5d 33 print("hello");
group-onsemi 0:098463de4c5d 34 }
group-onsemi 0:098463de4c5d 35
group-onsemi 0:098463de4c5d 36 ~Test() {
group-onsemi 0:098463de4c5d 37 print("destroy");
group-onsemi 0:098463de4c5d 38 }
group-onsemi 0:098463de4c5d 39 };
group-onsemi 0:098463de4c5d 40
group-onsemi 0:098463de4c5d 41 /* Check C++ startup initialisation */
group-onsemi 0:098463de4c5d 42 Test s("Static");
group-onsemi 0:098463de4c5d 43
group-onsemi 0:098463de4c5d 44 /* EXPECTED OUTPUT:
group-onsemi 0:098463de4c5d 45 *******************
group-onsemi 0:098463de4c5d 46 Static::init
group-onsemi 0:098463de4c5d 47 Static::stack_test
group-onsemi 0:098463de4c5d 48 Stack::init
group-onsemi 0:098463de4c5d 49 Stack::hello
group-onsemi 0:098463de4c5d 50 Stack::destroy
group-onsemi 0:098463de4c5d 51 Static::check_init: OK
group-onsemi 0:098463de4c5d 52 Heap::init
group-onsemi 0:098463de4c5d 53 Heap::hello
group-onsemi 0:098463de4c5d 54 Heap::destroy
group-onsemi 0:098463de4c5d 55 *******************/
group-onsemi 0:098463de4c5d 56 int main (void) {
group-onsemi 0:098463de4c5d 57 MBED_HOSTTEST_TIMEOUT(10);
group-onsemi 0:098463de4c5d 58 MBED_HOSTTEST_SELECT(default_auto);
group-onsemi 0:098463de4c5d 59 MBED_HOSTTEST_DESCRIPTION(C++);
group-onsemi 0:098463de4c5d 60 MBED_HOSTTEST_START("MBED_12");
group-onsemi 0:098463de4c5d 61
group-onsemi 0:098463de4c5d 62 bool result = true;
group-onsemi 0:098463de4c5d 63 for (;;)
group-onsemi 0:098463de4c5d 64 {
group-onsemi 0:098463de4c5d 65 // Global stack object simple test
group-onsemi 0:098463de4c5d 66 s.stack_test();
group-onsemi 0:098463de4c5d 67 if (s.check_init() == false)
group-onsemi 0:098463de4c5d 68 {
group-onsemi 0:098463de4c5d 69 result = false;
group-onsemi 0:098463de4c5d 70 break;
group-onsemi 0:098463de4c5d 71 }
group-onsemi 0:098463de4c5d 72
group-onsemi 0:098463de4c5d 73 // Heap test object simple test
group-onsemi 0:098463de4c5d 74 Test *m = new Test("Heap");
group-onsemi 0:098463de4c5d 75 m->hello();
group-onsemi 0:098463de4c5d 76
group-onsemi 0:098463de4c5d 77 if (m->check_init() == false)
group-onsemi 0:098463de4c5d 78 {
group-onsemi 0:098463de4c5d 79 result = false;
group-onsemi 0:098463de4c5d 80 }
group-onsemi 0:098463de4c5d 81 delete m;
group-onsemi 0:098463de4c5d 82 break;
group-onsemi 0:098463de4c5d 83 }
group-onsemi 0:098463de4c5d 84
group-onsemi 0:098463de4c5d 85 MBED_HOSTTEST_RESULT(result);
group-onsemi 0:098463de4c5d 86 }