Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
features/unsupported/tests/mbed/env/test_env.cpp@1:2b6e8130a0ac, 2018-02-22 (annotated)
- 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?
User | Revision | Line number | New 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 | } |