Rizky Ardi Maulana / mbed-os
Committer:
calmantara186
Date:
Thu Feb 22 14:05:19 2018 +0000
Revision:
1:2b6e8130a0ac
Parent:
0:f269e3021894
mbed os

Who changed what in which revision?

UserRevisionLine numberNew contents of line
elessair 0:f269e3021894 1 #include "test_env.h"
elessair 0:f269e3021894 2
elessair 0:f269e3021894 3 // Const strings used in test_end
elessair 0:f269e3021894 4 const char* TEST_ENV_START = "start";
elessair 0:f269e3021894 5 const char* TEST_ENV_SUCCESS = "success";
elessair 0:f269e3021894 6 const char* TEST_ENV_FAILURE = "failure";
elessair 0:f269e3021894 7 const char* TEST_ENV_MEASURE = "measure";
elessair 0:f269e3021894 8 const char* TEST_ENV_END = "end";
elessair 0:f269e3021894 9
elessair 0:f269e3021894 10
elessair 0:f269e3021894 11 static void led_blink(PinName led, float delay)
elessair 0:f269e3021894 12 {
elessair 0:f269e3021894 13 if (led != NC) {
elessair 0:f269e3021894 14 DigitalOut myled(led);
elessair 0:f269e3021894 15 while (1) {
elessair 0:f269e3021894 16 myled = !myled;
elessair 0:f269e3021894 17 wait(delay);
elessair 0:f269e3021894 18 }
elessair 0:f269e3021894 19 }
elessair 0:f269e3021894 20 while(1);
elessair 0:f269e3021894 21 }
elessair 0:f269e3021894 22
elessair 0:f269e3021894 23 void notify_start()
elessair 0:f269e3021894 24 {
elessair 0:f269e3021894 25 printf("{{%s}}" NL, TEST_ENV_START);
elessair 0:f269e3021894 26 }
elessair 0:f269e3021894 27
elessair 0:f269e3021894 28 void notify_performance_coefficient(const char* measurement_name, const int value)
elessair 0:f269e3021894 29 {
elessair 0:f269e3021894 30 printf("{{%s;%s;%d}}" RCNL, TEST_ENV_MEASURE, measurement_name, value);
elessair 0:f269e3021894 31 }
elessair 0:f269e3021894 32
elessair 0:f269e3021894 33 void notify_performance_coefficient(const char* measurement_name, const unsigned int value)
elessair 0:f269e3021894 34 {
elessair 0:f269e3021894 35 printf("{{%s;%s;%u}}" RCNL, TEST_ENV_MEASURE, measurement_name, value);
elessair 0:f269e3021894 36 }
elessair 0:f269e3021894 37
elessair 0:f269e3021894 38 void notify_performance_coefficient(const char* measurement_name, const double value)
elessair 0:f269e3021894 39 {
elessair 0:f269e3021894 40 printf("{{%s;%s;%f}}" RCNL, TEST_ENV_MEASURE, measurement_name, value);
elessair 0:f269e3021894 41 }
elessair 0:f269e3021894 42
elessair 0:f269e3021894 43 void notify_completion(bool success)
elessair 0:f269e3021894 44 {
elessair 0:f269e3021894 45 printf("{{%s}}" NL "{{%s}}" NL, success ? TEST_ENV_SUCCESS : TEST_ENV_FAILURE, TEST_ENV_END);
elessair 0:f269e3021894 46 led_blink(LED1, success ? 1.0 : 0.1);
elessair 0:f269e3021894 47 }
elessair 0:f269e3021894 48
elessair 0:f269e3021894 49 bool notify_completion_str(bool success, char* buffer)
elessair 0:f269e3021894 50 {
elessair 0:f269e3021894 51 bool result = false;
elessair 0:f269e3021894 52 if (buffer) {
elessair 0:f269e3021894 53 sprintf(buffer, "{{%s}}" NL "{{%s}}" NL, success ? TEST_ENV_SUCCESS : TEST_ENV_FAILURE, TEST_ENV_END);
elessair 0:f269e3021894 54 result = true;
elessair 0:f269e3021894 55 }
elessair 0:f269e3021894 56 return result;
elessair 0:f269e3021894 57 }
elessair 0:f269e3021894 58
elessair 0:f269e3021894 59 // Host test auto-detection API
elessair 0:f269e3021894 60 void notify_host_test_name(const char *host_test) {
elessair 0:f269e3021894 61 if (host_test) {
elessair 0:f269e3021894 62 printf("{{host_test_name;%s}}" NL, host_test);
elessair 0:f269e3021894 63 }
elessair 0:f269e3021894 64 }
elessair 0:f269e3021894 65
elessair 0:f269e3021894 66 void notify_timeout(int timeout) {
elessair 0:f269e3021894 67 printf("{{timeout;%d}}" NL, timeout);
elessair 0:f269e3021894 68 }
elessair 0:f269e3021894 69
elessair 0:f269e3021894 70 void notify_test_id(const char *test_id) {
elessair 0:f269e3021894 71 if (test_id) {
elessair 0:f269e3021894 72 printf("{{test_id;%s}}" NL, test_id);
elessair 0:f269e3021894 73 }
elessair 0:f269e3021894 74 }
elessair 0:f269e3021894 75
elessair 0:f269e3021894 76 void notify_test_description(const char *description) {
elessair 0:f269e3021894 77 if (description) {
elessair 0:f269e3021894 78 printf("{{description;%s}}" NL, description);
elessair 0:f269e3021894 79 }
elessair 0:f269e3021894 80 }
elessair 0:f269e3021894 81
elessair 0:f269e3021894 82
elessair 0:f269e3021894 83 // -DMBED_BUILD_TIMESTAMP=1406208182.13
elessair 0:f269e3021894 84 unsigned int testenv_randseed()
elessair 0:f269e3021894 85 {
elessair 0:f269e3021894 86 unsigned int seed = 0;
elessair 0:f269e3021894 87 #ifdef MBED_BUILD_TIMESTAMP
elessair 0:f269e3021894 88 long long_seed = static_cast<long>(MBED_BUILD_TIMESTAMP);
elessair 0:f269e3021894 89 seed = long_seed & 0xFFFFFFFF;
elessair 0:f269e3021894 90 #endif /* MBED_BUILD_TIMESTAMP */
elessair 0:f269e3021894 91 return seed;
elessair 0:f269e3021894 92 }