minimalist hardware testing support
Dependents: MAX5715BOB_Tester MAX11131BOB_Tester MAX5171BOB_Tester MAX11410BOB_Tester ... more
MaximTinyTester.cpp@13:c294236d7465, 2020-04-16 (annotated)
- Committer:
- whismanoid
- Date:
- Thu Apr 16 22:16:28 2020 -0700
- Revision:
- 13:c294236d7465
- Parent:
- 12:55db0f4a417d
- Child:
- 14:10219b869ac3
MaximTinyTester clear printf format warnings uint32_t
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
whismanoid | 0:93d4119d3f14 | 1 | // /******************************************************************************* |
whismanoid | 0:93d4119d3f14 | 2 | // * Copyright (C) 2019 Maxim Integrated Products, Inc., All Rights Reserved. |
whismanoid | 0:93d4119d3f14 | 3 | // * |
whismanoid | 0:93d4119d3f14 | 4 | // * Permission is hereby granted, free of charge, to any person obtaining a |
whismanoid | 0:93d4119d3f14 | 5 | // * copy of this software and associated documentation files (the "Software"), |
whismanoid | 0:93d4119d3f14 | 6 | // * to deal in the Software without restriction, including without limitation |
whismanoid | 0:93d4119d3f14 | 7 | // * the rights to use, copy, modify, merge, publish, distribute, sublicense, |
whismanoid | 0:93d4119d3f14 | 8 | // * and/or sell copies of the Software, and to permit persons to whom the |
whismanoid | 0:93d4119d3f14 | 9 | // * Software is furnished to do so, subject to the following conditions: |
whismanoid | 0:93d4119d3f14 | 10 | // * |
whismanoid | 0:93d4119d3f14 | 11 | // * The above copyright notice and this permission notice shall be included |
whismanoid | 0:93d4119d3f14 | 12 | // * in all copies or substantial portions of the Software. |
whismanoid | 0:93d4119d3f14 | 13 | // * |
whismanoid | 0:93d4119d3f14 | 14 | // * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
whismanoid | 0:93d4119d3f14 | 15 | // * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
whismanoid | 0:93d4119d3f14 | 16 | // * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
whismanoid | 0:93d4119d3f14 | 17 | // * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES |
whismanoid | 0:93d4119d3f14 | 18 | // * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, |
whismanoid | 0:93d4119d3f14 | 19 | // * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
whismanoid | 0:93d4119d3f14 | 20 | // * OTHER DEALINGS IN THE SOFTWARE. |
whismanoid | 0:93d4119d3f14 | 21 | // * |
whismanoid | 0:93d4119d3f14 | 22 | // * Except as contained in this notice, the name of Maxim Integrated |
whismanoid | 0:93d4119d3f14 | 23 | // * Products, Inc. shall not be used except as stated in the Maxim Integrated |
whismanoid | 0:93d4119d3f14 | 24 | // * Products, Inc. Branding Policy. |
whismanoid | 0:93d4119d3f14 | 25 | // * |
whismanoid | 0:93d4119d3f14 | 26 | // * The mere transfer of this software does not imply any licenses |
whismanoid | 0:93d4119d3f14 | 27 | // * of trade secrets, proprietary technology, copyrights, patents, |
whismanoid | 0:93d4119d3f14 | 28 | // * trademarks, maskwork rights, or any other form of intellectual |
whismanoid | 0:93d4119d3f14 | 29 | // * property whatsoever. Maxim Integrated Products, Inc. retains all |
whismanoid | 0:93d4119d3f14 | 30 | // * ownership rights. |
whismanoid | 0:93d4119d3f14 | 31 | // ******************************************************************************* |
whismanoid | 0:93d4119d3f14 | 32 | // */ |
whismanoid | 0:93d4119d3f14 | 33 | // ********************************************************************* |
whismanoid | 0:93d4119d3f14 | 34 | // @file MaximTinyTester.cpp |
whismanoid | 0:93d4119d3f14 | 35 | // ********************************************************************* |
whismanoid | 0:93d4119d3f14 | 36 | |
whismanoid | 0:93d4119d3f14 | 37 | #include "MaximTinyTester.h" |
whismanoid | 0:93d4119d3f14 | 38 | |
whismanoid | 3:080aa1bb1bc0 | 39 | #ifndef LED_ON |
whismanoid | 3:080aa1bb1bc0 | 40 | # define LED_ON 0 |
whismanoid | 3:080aa1bb1bc0 | 41 | #endif |
whismanoid | 3:080aa1bb1bc0 | 42 | #ifndef LED_OFF |
whismanoid | 3:080aa1bb1bc0 | 43 | # define LED_OFF 1 |
whismanoid | 3:080aa1bb1bc0 | 44 | #endif |
whismanoid | 3:080aa1bb1bc0 | 45 | |
whismanoid | 0:93d4119d3f14 | 46 | MaximTinyTester::MaximTinyTester(CmdLine& AssociatedCmdLine, |
whismanoid | 0:93d4119d3f14 | 47 | AnalogIn& analogInPin0, |
whismanoid | 0:93d4119d3f14 | 48 | AnalogIn& analogInPin1, |
whismanoid | 0:93d4119d3f14 | 49 | AnalogIn& analogInPin2, |
whismanoid | 0:93d4119d3f14 | 50 | AnalogIn& analogInPin3, |
whismanoid | 0:93d4119d3f14 | 51 | AnalogIn& analogInPin4, |
whismanoid | 1:f98ddb04f9e0 | 52 | AnalogIn& analogInPin5, |
whismanoid | 1:f98ddb04f9e0 | 53 | DigitalOut& m_RFailLED, |
whismanoid | 1:f98ddb04f9e0 | 54 | DigitalOut& m_GPassLED, |
whismanoid | 1:f98ddb04f9e0 | 55 | DigitalOut& m_BBusyLED) |
whismanoid | 0:93d4119d3f14 | 56 | : associatedCmdLine(AssociatedCmdLine) |
whismanoid | 0:93d4119d3f14 | 57 | , analogInPin0(analogInPin0) |
whismanoid | 0:93d4119d3f14 | 58 | , analogInPin1(analogInPin1) |
whismanoid | 0:93d4119d3f14 | 59 | , analogInPin2(analogInPin2) |
whismanoid | 0:93d4119d3f14 | 60 | , analogInPin3(analogInPin3) |
whismanoid | 0:93d4119d3f14 | 61 | , analogInPin4(analogInPin4) |
whismanoid | 0:93d4119d3f14 | 62 | , analogInPin5(analogInPin5) |
whismanoid | 1:f98ddb04f9e0 | 63 | , m_RFailLED(m_RFailLED) |
whismanoid | 1:f98ddb04f9e0 | 64 | , m_GPassLED(m_GPassLED) |
whismanoid | 1:f98ddb04f9e0 | 65 | , m_BBusyLED(m_BBusyLED) |
whismanoid | 0:93d4119d3f14 | 66 | { |
whismanoid | 0:93d4119d3f14 | 67 | nPass = 0; |
whismanoid | 0:93d4119d3f14 | 68 | nFail = 0; |
whismanoid | 0:93d4119d3f14 | 69 | err_threshold = 0.030; // 30mV |
whismanoid | 0:93d4119d3f14 | 70 | input_timeout_time_msec = 250; |
whismanoid | 0:93d4119d3f14 | 71 | settle_time_msec = 250; |
whismanoid | 1:f98ddb04f9e0 | 72 | blink_time_msec = 75; |
whismanoid | 0:93d4119d3f14 | 73 | analogInPin_fullScaleVoltage[0] = 3.300; |
whismanoid | 0:93d4119d3f14 | 74 | analogInPin_fullScaleVoltage[1] = 3.300; |
whismanoid | 0:93d4119d3f14 | 75 | analogInPin_fullScaleVoltage[2] = 3.300; |
whismanoid | 0:93d4119d3f14 | 76 | analogInPin_fullScaleVoltage[3] = 3.300; |
whismanoid | 0:93d4119d3f14 | 77 | analogInPin_fullScaleVoltage[4] = 3.300; |
whismanoid | 0:93d4119d3f14 | 78 | analogInPin_fullScaleVoltage[5] = 3.300; |
whismanoid | 0:93d4119d3f14 | 79 | } |
whismanoid | 0:93d4119d3f14 | 80 | |
whismanoid | 0:93d4119d3f14 | 81 | /** reset the pass/fail counters. |
whismanoid | 0:93d4119d3f14 | 82 | * |
whismanoid | 0:93d4119d3f14 | 83 | * @post nPass and nFail are reset to 0 |
whismanoid | 0:93d4119d3f14 | 84 | * |
whismanoid | 0:93d4119d3f14 | 85 | */ |
whismanoid | 0:93d4119d3f14 | 86 | void MaximTinyTester::clear(void) |
whismanoid | 0:93d4119d3f14 | 87 | { |
whismanoid | 0:93d4119d3f14 | 88 | nPass = 0; |
whismanoid | 0:93d4119d3f14 | 89 | nFail = 0; |
whismanoid | 3:080aa1bb1bc0 | 90 | // PinName NC means NOT_CONNECTED; DigitalOut::is_connected() returns false |
whismanoid | 3:080aa1bb1bc0 | 91 | if (m_RFailLED.is_connected()) { |
whismanoid | 3:080aa1bb1bc0 | 92 | m_RFailLED = LED_ON; |
whismanoid | 3:080aa1bb1bc0 | 93 | } |
whismanoid | 3:080aa1bb1bc0 | 94 | if (m_GPassLED.is_connected()) { |
whismanoid | 3:080aa1bb1bc0 | 95 | m_GPassLED = LED_ON; |
whismanoid | 3:080aa1bb1bc0 | 96 | } |
whismanoid | 3:080aa1bb1bc0 | 97 | if (m_BBusyLED.is_connected()) { |
whismanoid | 3:080aa1bb1bc0 | 98 | m_BBusyLED = LED_OFF; |
whismanoid | 3:080aa1bb1bc0 | 99 | } |
whismanoid | 0:93d4119d3f14 | 100 | } |
whismanoid | 0:93d4119d3f14 | 101 | |
whismanoid | 0:93d4119d3f14 | 102 | /** report that a test has completed with success. |
whismanoid | 0:93d4119d3f14 | 103 | * |
whismanoid | 0:93d4119d3f14 | 104 | * @post nPass is increased by 1 |
whismanoid | 0:93d4119d3f14 | 105 | * |
whismanoid | 0:93d4119d3f14 | 106 | */ |
whismanoid | 0:93d4119d3f14 | 107 | void MaximTinyTester::PASS() |
whismanoid | 0:93d4119d3f14 | 108 | { |
whismanoid | 0:93d4119d3f14 | 109 | ++nPass; |
whismanoid | 1:f98ddb04f9e0 | 110 | // m_RFailLED = LED_ON; m_GPassLED = LED_ON; m_BBusyLED = LED_ON; |
whismanoid | 1:f98ddb04f9e0 | 111 | // pulse blue LED during test to indicate activity |
whismanoid | 3:080aa1bb1bc0 | 112 | if (m_GPassLED.is_connected()) { |
whismanoid | 3:080aa1bb1bc0 | 113 | m_GPassLED = LED_OFF; |
whismanoid | 3:080aa1bb1bc0 | 114 | } |
whismanoid | 3:080aa1bb1bc0 | 115 | if (m_BBusyLED.is_connected()) { |
whismanoid | 3:080aa1bb1bc0 | 116 | m_BBusyLED = LED_ON; |
whismanoid | 3:080aa1bb1bc0 | 117 | } |
whismanoid | 1:f98ddb04f9e0 | 118 | wait_ms(blink_time_msec); // delay |
whismanoid | 3:080aa1bb1bc0 | 119 | if (m_GPassLED.is_connected()) { |
whismanoid | 3:080aa1bb1bc0 | 120 | m_GPassLED = LED_ON; |
whismanoid | 3:080aa1bb1bc0 | 121 | } |
whismanoid | 3:080aa1bb1bc0 | 122 | if (m_BBusyLED.is_connected()) { |
whismanoid | 3:080aa1bb1bc0 | 123 | m_BBusyLED = LED_OFF; |
whismanoid | 3:080aa1bb1bc0 | 124 | } |
whismanoid | 1:f98ddb04f9e0 | 125 | wait_ms(blink_time_msec); // delay |
whismanoid | 0:93d4119d3f14 | 126 | associatedCmdLine.serial().printf("\r\n+PASS "); |
whismanoid | 0:93d4119d3f14 | 127 | } |
whismanoid | 0:93d4119d3f14 | 128 | |
whismanoid | 0:93d4119d3f14 | 129 | /** report that a test has completed with failure. |
whismanoid | 0:93d4119d3f14 | 130 | * |
whismanoid | 0:93d4119d3f14 | 131 | * @post nFail is increased by 1 |
whismanoid | 0:93d4119d3f14 | 132 | * |
whismanoid | 0:93d4119d3f14 | 133 | */ |
whismanoid | 0:93d4119d3f14 | 134 | void MaximTinyTester::FAIL() |
whismanoid | 0:93d4119d3f14 | 135 | { |
whismanoid | 0:93d4119d3f14 | 136 | ++nFail; |
whismanoid | 1:f98ddb04f9e0 | 137 | // m_RFailLED = LED_ON; m_GPassLED = LED_ON; m_BBusyLED = LED_ON; |
whismanoid | 1:f98ddb04f9e0 | 138 | // pulse blue LED during test to indicate activity |
whismanoid | 3:080aa1bb1bc0 | 139 | if (m_RFailLED.is_connected()) { |
whismanoid | 3:080aa1bb1bc0 | 140 | m_RFailLED = LED_OFF; |
whismanoid | 3:080aa1bb1bc0 | 141 | } |
whismanoid | 3:080aa1bb1bc0 | 142 | if (m_BBusyLED.is_connected()) { |
whismanoid | 3:080aa1bb1bc0 | 143 | m_BBusyLED = LED_ON; |
whismanoid | 3:080aa1bb1bc0 | 144 | } |
whismanoid | 1:f98ddb04f9e0 | 145 | wait_ms(blink_time_msec); // delay |
whismanoid | 3:080aa1bb1bc0 | 146 | if (m_RFailLED.is_connected()) { |
whismanoid | 3:080aa1bb1bc0 | 147 | m_RFailLED = LED_ON; |
whismanoid | 3:080aa1bb1bc0 | 148 | } |
whismanoid | 3:080aa1bb1bc0 | 149 | if (m_BBusyLED.is_connected()) { |
whismanoid | 3:080aa1bb1bc0 | 150 | m_BBusyLED = LED_OFF; |
whismanoid | 3:080aa1bb1bc0 | 151 | } |
whismanoid | 1:f98ddb04f9e0 | 152 | wait_ms(blink_time_msec); // delay |
whismanoid | 0:93d4119d3f14 | 153 | associatedCmdLine.serial().printf("\r\n-FAIL "); |
whismanoid | 0:93d4119d3f14 | 154 | #if USE_LEDS |
whismanoid | 0:93d4119d3f14 | 155 | rgb_led.red(); // diagnostic rbg led RED |
whismanoid | 0:93d4119d3f14 | 156 | //~ rgb_led.green(); // diagnostic rbg led GREEN |
whismanoid | 0:93d4119d3f14 | 157 | //~ rgb_led.blue(); // diagnostic rbg led BLUE |
whismanoid | 0:93d4119d3f14 | 158 | //~ rgb_led.white(); // diagnostic rbg led RED+GREEN+BLUE=WHITE |
whismanoid | 0:93d4119d3f14 | 159 | //~ rgb_led.cyan(); // diagnostic rbg led GREEN+BLUE=CYAN |
whismanoid | 0:93d4119d3f14 | 160 | //~ rgb_led.magenta(); // diagnostic rbg led RED+BLUE=MAGENTA |
whismanoid | 0:93d4119d3f14 | 161 | //~ rgb_led.yellow(); // diagnostic rbg led RED+GREEN=YELLOW |
whismanoid | 0:93d4119d3f14 | 162 | //~ rgb_led.black(); // diagnostic rbg led BLACK |
whismanoid | 0:93d4119d3f14 | 163 | #endif // USE_LEDS |
whismanoid | 0:93d4119d3f14 | 164 | } |
whismanoid | 0:93d4119d3f14 | 165 | |
whismanoid | 9:3ec00515891d | 166 | /** Print a message to the console during test. |
whismanoid | 9:3ec00515891d | 167 | */ |
whismanoid | 9:3ec00515891d | 168 | void MaximTinyTester::print(const char* stringLiteralMessage) |
whismanoid | 9:3ec00515891d | 169 | { |
whismanoid | 9:3ec00515891d | 170 | associatedCmdLine.serial().printf("\r\n %s", stringLiteralMessage); |
whismanoid | 9:3ec00515891d | 171 | } |
whismanoid | 9:3ec00515891d | 172 | |
whismanoid | 0:93d4119d3f14 | 173 | /** Report number of pass and number of fail test results |
whismanoid | 0:93d4119d3f14 | 174 | */ |
whismanoid | 0:93d4119d3f14 | 175 | void MaximTinyTester::Report_Summary(void) |
whismanoid | 0:93d4119d3f14 | 176 | { |
whismanoid | 0:93d4119d3f14 | 177 | associatedCmdLine.serial().printf("\r\nSummary: %d PASS %d FAIL\r\n", nPass, nFail); |
whismanoid | 0:93d4119d3f14 | 178 | //~ associatedCmdLine.serial().printf(g_SelfTest_nPass); |
whismanoid | 0:93d4119d3f14 | 179 | //~ associatedCmdLine.serial().printf(" PASS "); |
whismanoid | 0:93d4119d3f14 | 180 | //~ associatedCmdLine.serial().printf(g_SelfTest_nFail); |
whismanoid | 0:93d4119d3f14 | 181 | //~ associatedCmdLine.serial().printf(" FAIL\r\n"); |
whismanoid | 0:93d4119d3f14 | 182 | if (nFail == 0) { |
whismanoid | 3:080aa1bb1bc0 | 183 | if (m_RFailLED.is_connected()) { |
whismanoid | 3:080aa1bb1bc0 | 184 | m_RFailLED = LED_OFF; |
whismanoid | 3:080aa1bb1bc0 | 185 | } |
whismanoid | 3:080aa1bb1bc0 | 186 | if (m_GPassLED.is_connected()) { |
whismanoid | 3:080aa1bb1bc0 | 187 | m_GPassLED = LED_ON; |
whismanoid | 3:080aa1bb1bc0 | 188 | } |
whismanoid | 3:080aa1bb1bc0 | 189 | if (m_BBusyLED.is_connected()) { |
whismanoid | 3:080aa1bb1bc0 | 190 | m_BBusyLED = LED_OFF; |
whismanoid | 3:080aa1bb1bc0 | 191 | } |
whismanoid | 1:f98ddb04f9e0 | 192 | //~ rgb_led.green(); // diagnostic rbg led GREEN |
whismanoid | 1:f98ddb04f9e0 | 193 | } |
whismanoid | 1:f98ddb04f9e0 | 194 | else { |
whismanoid | 3:080aa1bb1bc0 | 195 | if (m_RFailLED.is_connected()) { |
whismanoid | 3:080aa1bb1bc0 | 196 | m_RFailLED = LED_ON; |
whismanoid | 3:080aa1bb1bc0 | 197 | } |
whismanoid | 3:080aa1bb1bc0 | 198 | if (m_GPassLED.is_connected()) { |
whismanoid | 3:080aa1bb1bc0 | 199 | m_GPassLED = LED_OFF; |
whismanoid | 3:080aa1bb1bc0 | 200 | } |
whismanoid | 3:080aa1bb1bc0 | 201 | if (m_BBusyLED.is_connected()) { |
whismanoid | 3:080aa1bb1bc0 | 202 | m_BBusyLED = LED_OFF; |
whismanoid | 3:080aa1bb1bc0 | 203 | } |
whismanoid | 0:93d4119d3f14 | 204 | //~ rgb_led.red(); // diagnostic rbg led RED |
whismanoid | 0:93d4119d3f14 | 205 | } |
whismanoid | 0:93d4119d3f14 | 206 | } |
whismanoid | 0:93d4119d3f14 | 207 | |
whismanoid | 10:b11ab5d7ac58 | 208 | bool MaximTinyTester::Expect(const char *nameOfTest, int actual_result, int expect_result) |
whismanoid | 10:b11ab5d7ac58 | 209 | { |
whismanoid | 10:b11ab5d7ac58 | 210 | if (actual_result != expect_result) |
whismanoid | 10:b11ab5d7ac58 | 211 | { |
whismanoid | 10:b11ab5d7ac58 | 212 | FAIL(); |
whismanoid | 10:b11ab5d7ac58 | 213 | associatedCmdLine.serial().printf("%s", nameOfTest); |
whismanoid | 10:b11ab5d7ac58 | 214 | associatedCmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 10:b11ab5d7ac58 | 215 | associatedCmdLine.serial().printf(" but got %d", actual_result); |
whismanoid | 10:b11ab5d7ac58 | 216 | return false; |
whismanoid | 10:b11ab5d7ac58 | 217 | } |
whismanoid | 10:b11ab5d7ac58 | 218 | else |
whismanoid | 10:b11ab5d7ac58 | 219 | { |
whismanoid | 10:b11ab5d7ac58 | 220 | PASS(); |
whismanoid | 10:b11ab5d7ac58 | 221 | associatedCmdLine.serial().printf("%s", nameOfTest); |
whismanoid | 10:b11ab5d7ac58 | 222 | associatedCmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 10:b11ab5d7ac58 | 223 | return true; |
whismanoid | 10:b11ab5d7ac58 | 224 | } |
whismanoid | 10:b11ab5d7ac58 | 225 | } |
whismanoid | 10:b11ab5d7ac58 | 226 | |
whismanoid | 10:b11ab5d7ac58 | 227 | bool MaximTinyTester::Expect(const char *nameOfTest, double actual_result, double expect_result) |
whismanoid | 10:b11ab5d7ac58 | 228 | { |
whismanoid | 10:b11ab5d7ac58 | 229 | double err_result = (actual_result - expect_result); |
whismanoid | 10:b11ab5d7ac58 | 230 | if (( -err_threshold < err_result) && ( err_result < err_threshold)) |
whismanoid | 10:b11ab5d7ac58 | 231 | { |
whismanoid | 10:b11ab5d7ac58 | 232 | PASS(); |
whismanoid | 10:b11ab5d7ac58 | 233 | associatedCmdLine.serial().printf("%s", nameOfTest); |
whismanoid | 10:b11ab5d7ac58 | 234 | associatedCmdLine.serial().printf(" expect %6.6f", expect_result); |
whismanoid | 10:b11ab5d7ac58 | 235 | return true; |
whismanoid | 10:b11ab5d7ac58 | 236 | } |
whismanoid | 10:b11ab5d7ac58 | 237 | else |
whismanoid | 10:b11ab5d7ac58 | 238 | { |
whismanoid | 10:b11ab5d7ac58 | 239 | FAIL(); |
whismanoid | 10:b11ab5d7ac58 | 240 | associatedCmdLine.serial().printf("%s", nameOfTest); |
whismanoid | 10:b11ab5d7ac58 | 241 | associatedCmdLine.serial().printf(" expect %6.6f", expect_result); |
whismanoid | 10:b11ab5d7ac58 | 242 | associatedCmdLine.serial().printf(" but got %6.6f", actual_result); |
whismanoid | 10:b11ab5d7ac58 | 243 | associatedCmdLine.serial().printf(" err=%6.6f", err_result); |
whismanoid | 10:b11ab5d7ac58 | 244 | return false; |
whismanoid | 10:b11ab5d7ac58 | 245 | } |
whismanoid | 10:b11ab5d7ac58 | 246 | } |
whismanoid | 10:b11ab5d7ac58 | 247 | |
whismanoid | 0:93d4119d3f14 | 248 | /** Test a software function |
whismanoid | 0:93d4119d3f14 | 249 | * |
whismanoid | 0:93d4119d3f14 | 250 | * @param[in] nameOfFunctionUnderTest is the user-facing name of the function under test |
whismanoid | 0:93d4119d3f14 | 251 | * |
whismanoid | 0:93d4119d3f14 | 252 | * @param[in] functionUnderTest points to the function under test |
whismanoid | 0:93d4119d3f14 | 253 | * |
whismanoid | 8:9171f0ab3c17 | 254 | * @param[in] arg_1_voltageV is a test argument given to the function under test |
whismanoid | 0:93d4119d3f14 | 255 | * |
whismanoid | 0:93d4119d3f14 | 256 | * @param[in] expect_result contains the expected result |
whismanoid | 0:93d4119d3f14 | 257 | * |
whismanoid | 0:93d4119d3f14 | 258 | * @post nPass and nFail counters are updated |
whismanoid | 0:93d4119d3f14 | 259 | * |
whismanoid | 0:93d4119d3f14 | 260 | * @return true if success, false if test failed |
whismanoid | 0:93d4119d3f14 | 261 | * |
whismanoid | 0:93d4119d3f14 | 262 | */ |
whismanoid | 12:55db0f4a417d | 263 | bool MaximTinyTester::FunctionCall_u_f_Expect(const char *nameOfFunctionUnderTest, |
whismanoid | 0:93d4119d3f14 | 264 | Callback<uint16_t(double)> functionUnderTest, |
whismanoid | 8:9171f0ab3c17 | 265 | double arg_1_voltageV, |
whismanoid | 8:9171f0ab3c17 | 266 | uint16_t expect_result) |
whismanoid | 0:93d4119d3f14 | 267 | { |
whismanoid | 8:9171f0ab3c17 | 268 | uint16_t actual_result = functionUnderTest(arg_1_voltageV); |
whismanoid | 0:93d4119d3f14 | 269 | if (actual_result != expect_result) |
whismanoid | 0:93d4119d3f14 | 270 | { |
whismanoid | 0:93d4119d3f14 | 271 | FAIL(); |
whismanoid | 8:9171f0ab3c17 | 272 | associatedCmdLine.serial().printf("%s(%6.4fV)", nameOfFunctionUnderTest, arg_1_voltageV); |
whismanoid | 0:93d4119d3f14 | 273 | associatedCmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 0:93d4119d3f14 | 274 | associatedCmdLine.serial().printf(" but got %d", actual_result); |
whismanoid | 0:93d4119d3f14 | 275 | return false; |
whismanoid | 0:93d4119d3f14 | 276 | } |
whismanoid | 0:93d4119d3f14 | 277 | else |
whismanoid | 0:93d4119d3f14 | 278 | { |
whismanoid | 0:93d4119d3f14 | 279 | PASS(); |
whismanoid | 8:9171f0ab3c17 | 280 | associatedCmdLine.serial().printf("%s(%6.4fV)", nameOfFunctionUnderTest, arg_1_voltageV); |
whismanoid | 0:93d4119d3f14 | 281 | associatedCmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 0:93d4119d3f14 | 282 | return true; |
whismanoid | 0:93d4119d3f14 | 283 | } |
whismanoid | 0:93d4119d3f14 | 284 | //~ associatedCmdLine.serial().printf("\r\n"); |
whismanoid | 0:93d4119d3f14 | 285 | } |
whismanoid | 0:93d4119d3f14 | 286 | |
whismanoid | 0:93d4119d3f14 | 287 | /** Test a software function |
whismanoid | 0:93d4119d3f14 | 288 | * |
whismanoid | 0:93d4119d3f14 | 289 | * @param[in] nameOfFunctionUnderTest is the user-facing name of the function under test |
whismanoid | 0:93d4119d3f14 | 290 | * |
whismanoid | 0:93d4119d3f14 | 291 | * @param[in] functionUnderTest points to the function under test |
whismanoid | 0:93d4119d3f14 | 292 | * |
whismanoid | 8:9171f0ab3c17 | 293 | * @param[in] arg_1_u16 is a test argument given to the function under test |
whismanoid | 0:93d4119d3f14 | 294 | * |
whismanoid | 0:93d4119d3f14 | 295 | * @param[in] expect_result contains the expected result |
whismanoid | 0:93d4119d3f14 | 296 | * |
whismanoid | 0:93d4119d3f14 | 297 | * @pre err_threshold determines how closely the result must match the expected value |
whismanoid | 0:93d4119d3f14 | 298 | * |
whismanoid | 0:93d4119d3f14 | 299 | * @post nPass and nFail counters are updated |
whismanoid | 0:93d4119d3f14 | 300 | * |
whismanoid | 0:93d4119d3f14 | 301 | * @return true if success, false if test failed |
whismanoid | 0:93d4119d3f14 | 302 | * |
whismanoid | 0:93d4119d3f14 | 303 | */ |
whismanoid | 12:55db0f4a417d | 304 | bool MaximTinyTester::FunctionCall_f_d_Expect(const char *nameOfFunctionUnderTest, |
whismanoid | 10:b11ab5d7ac58 | 305 | Callback<double(int)> functionUnderTest, |
whismanoid | 10:b11ab5d7ac58 | 306 | int arg_1_u16, |
whismanoid | 8:9171f0ab3c17 | 307 | double expect_result) |
whismanoid | 0:93d4119d3f14 | 308 | { |
whismanoid | 8:9171f0ab3c17 | 309 | double actual_result = functionUnderTest(arg_1_u16); |
whismanoid | 0:93d4119d3f14 | 310 | double err_result = (actual_result - expect_result); |
whismanoid | 0:93d4119d3f14 | 311 | if (( -err_threshold < err_result) && ( err_result < err_threshold)) |
whismanoid | 0:93d4119d3f14 | 312 | { |
whismanoid | 0:93d4119d3f14 | 313 | PASS(); |
whismanoid | 8:9171f0ab3c17 | 314 | associatedCmdLine.serial().printf("%s(%d)", nameOfFunctionUnderTest, arg_1_u16); |
whismanoid | 0:93d4119d3f14 | 315 | associatedCmdLine.serial().printf(" expect %6.6f", expect_result); |
whismanoid | 0:93d4119d3f14 | 316 | return true; |
whismanoid | 0:93d4119d3f14 | 317 | } |
whismanoid | 0:93d4119d3f14 | 318 | else |
whismanoid | 0:93d4119d3f14 | 319 | { |
whismanoid | 0:93d4119d3f14 | 320 | FAIL(); |
whismanoid | 8:9171f0ab3c17 | 321 | associatedCmdLine.serial().printf("%s(%d)", nameOfFunctionUnderTest, arg_1_u16); |
whismanoid | 0:93d4119d3f14 | 322 | associatedCmdLine.serial().printf(" expect %6.6f", expect_result); |
whismanoid | 0:93d4119d3f14 | 323 | associatedCmdLine.serial().printf(" but got %6.6f", actual_result); |
whismanoid | 0:93d4119d3f14 | 324 | associatedCmdLine.serial().printf(" err=%6.6f", err_result); |
whismanoid | 0:93d4119d3f14 | 325 | return false; |
whismanoid | 0:93d4119d3f14 | 326 | } |
whismanoid | 0:93d4119d3f14 | 327 | //~ associatedCmdLine.serial().printf("\r\n"); |
whismanoid | 0:93d4119d3f14 | 328 | } |
whismanoid | 0:93d4119d3f14 | 329 | |
whismanoid | 5:67a1cd5a67cc | 330 | /** Test a software function |
whismanoid | 5:67a1cd5a67cc | 331 | * |
whismanoid | 5:67a1cd5a67cc | 332 | * @param[in] nameOfFunctionUnderTest is the user-facing name of the function under test |
whismanoid | 5:67a1cd5a67cc | 333 | * |
whismanoid | 5:67a1cd5a67cc | 334 | * @param[in] functionUnderTest points to the function under test |
whismanoid | 5:67a1cd5a67cc | 335 | * |
whismanoid | 12:55db0f4a417d | 336 | * @param[in] arg_1_int is a test argument given to the function under test |
whismanoid | 12:55db0f4a417d | 337 | * @param[in] arg_2_int is a test argument given to the function under test |
whismanoid | 12:55db0f4a417d | 338 | * |
whismanoid | 12:55db0f4a417d | 339 | * @param[in] expect_result contains the expected result |
whismanoid | 12:55db0f4a417d | 340 | * |
whismanoid | 12:55db0f4a417d | 341 | * @pre err_threshold determines how closely the result must match the expected value |
whismanoid | 12:55db0f4a417d | 342 | * |
whismanoid | 12:55db0f4a417d | 343 | * @post nPass and nFail counters are updated |
whismanoid | 12:55db0f4a417d | 344 | * |
whismanoid | 12:55db0f4a417d | 345 | * @return true if success, false if test failed |
whismanoid | 12:55db0f4a417d | 346 | * |
whismanoid | 12:55db0f4a417d | 347 | */ |
whismanoid | 12:55db0f4a417d | 348 | bool MaximTinyTester::FunctionCall_f_d_d_Expect(const char *nameOfFunctionUnderTest, |
whismanoid | 12:55db0f4a417d | 349 | Callback<double(int, int)> functionUnderTest, |
whismanoid | 12:55db0f4a417d | 350 | int arg_1_int, |
whismanoid | 12:55db0f4a417d | 351 | int arg_2_int, |
whismanoid | 12:55db0f4a417d | 352 | double expect_result) |
whismanoid | 12:55db0f4a417d | 353 | { |
whismanoid | 12:55db0f4a417d | 354 | double actual_result = functionUnderTest(arg_1_int, arg_2_int); |
whismanoid | 12:55db0f4a417d | 355 | double err_result = (actual_result - expect_result); |
whismanoid | 12:55db0f4a417d | 356 | if (( -err_threshold < err_result) && ( err_result < err_threshold)) |
whismanoid | 12:55db0f4a417d | 357 | { |
whismanoid | 12:55db0f4a417d | 358 | PASS(); |
whismanoid | 12:55db0f4a417d | 359 | associatedCmdLine.serial().printf("%s(%d,%d)", nameOfFunctionUnderTest, arg_1_int, arg_2_int); |
whismanoid | 12:55db0f4a417d | 360 | associatedCmdLine.serial().printf(" expect %6.6f", expect_result); |
whismanoid | 12:55db0f4a417d | 361 | return true; |
whismanoid | 12:55db0f4a417d | 362 | } |
whismanoid | 12:55db0f4a417d | 363 | else |
whismanoid | 12:55db0f4a417d | 364 | { |
whismanoid | 12:55db0f4a417d | 365 | FAIL(); |
whismanoid | 12:55db0f4a417d | 366 | associatedCmdLine.serial().printf("%s(%d,%d)", nameOfFunctionUnderTest, arg_1_int, arg_2_int); |
whismanoid | 12:55db0f4a417d | 367 | associatedCmdLine.serial().printf(" expect %6.6f", expect_result); |
whismanoid | 12:55db0f4a417d | 368 | associatedCmdLine.serial().printf(" but got %6.6f", actual_result); |
whismanoid | 12:55db0f4a417d | 369 | associatedCmdLine.serial().printf(" err=%6.6f", err_result); |
whismanoid | 12:55db0f4a417d | 370 | return false; |
whismanoid | 12:55db0f4a417d | 371 | } |
whismanoid | 12:55db0f4a417d | 372 | //~ associatedCmdLine.serial().printf("\r\n"); |
whismanoid | 12:55db0f4a417d | 373 | } |
whismanoid | 12:55db0f4a417d | 374 | |
whismanoid | 12:55db0f4a417d | 375 | /** Test a software function |
whismanoid | 12:55db0f4a417d | 376 | * |
whismanoid | 12:55db0f4a417d | 377 | * @param[in] nameOfFunctionUnderTest is the user-facing name of the function under test |
whismanoid | 12:55db0f4a417d | 378 | * |
whismanoid | 12:55db0f4a417d | 379 | * @param[in] functionUnderTest points to the function under test |
whismanoid | 12:55db0f4a417d | 380 | * |
whismanoid | 8:9171f0ab3c17 | 381 | * @param[in] arg_1_u32 is a test argument given to the function under test |
whismanoid | 5:67a1cd5a67cc | 382 | * |
whismanoid | 5:67a1cd5a67cc | 383 | * @param[in] expect_result contains the expected result |
whismanoid | 5:67a1cd5a67cc | 384 | * |
whismanoid | 5:67a1cd5a67cc | 385 | * @pre err_threshold determines how closely the result must match the expected value |
whismanoid | 5:67a1cd5a67cc | 386 | * |
whismanoid | 5:67a1cd5a67cc | 387 | * @post nPass and nFail counters are updated |
whismanoid | 5:67a1cd5a67cc | 388 | * |
whismanoid | 5:67a1cd5a67cc | 389 | * @return true if success, false if test failed |
whismanoid | 5:67a1cd5a67cc | 390 | * |
whismanoid | 5:67a1cd5a67cc | 391 | */ |
whismanoid | 12:55db0f4a417d | 392 | bool MaximTinyTester::FunctionCall_f_lu_Expect(const char *nameOfFunctionUnderTest, |
whismanoid | 5:67a1cd5a67cc | 393 | Callback<double(uint32_t)> functionUnderTest, |
whismanoid | 8:9171f0ab3c17 | 394 | uint32_t arg_1_u32, |
whismanoid | 8:9171f0ab3c17 | 395 | double expect_result) |
whismanoid | 5:67a1cd5a67cc | 396 | { |
whismanoid | 8:9171f0ab3c17 | 397 | double actual_result = functionUnderTest(arg_1_u32); |
whismanoid | 5:67a1cd5a67cc | 398 | double err_result = (actual_result - expect_result); |
whismanoid | 5:67a1cd5a67cc | 399 | if (( -err_threshold < err_result) && ( err_result < err_threshold)) |
whismanoid | 5:67a1cd5a67cc | 400 | { |
whismanoid | 5:67a1cd5a67cc | 401 | PASS(); |
whismanoid | 8:9171f0ab3c17 | 402 | associatedCmdLine.serial().printf("%s(0x%lx)", nameOfFunctionUnderTest, arg_1_u32); |
whismanoid | 5:67a1cd5a67cc | 403 | associatedCmdLine.serial().printf(" expect %6.6f", expect_result); |
whismanoid | 5:67a1cd5a67cc | 404 | return true; |
whismanoid | 5:67a1cd5a67cc | 405 | } |
whismanoid | 5:67a1cd5a67cc | 406 | else |
whismanoid | 5:67a1cd5a67cc | 407 | { |
whismanoid | 5:67a1cd5a67cc | 408 | FAIL(); |
whismanoid | 8:9171f0ab3c17 | 409 | associatedCmdLine.serial().printf("%s(0x%lx)", nameOfFunctionUnderTest, arg_1_u32); |
whismanoid | 5:67a1cd5a67cc | 410 | associatedCmdLine.serial().printf(" expect %6.6f", expect_result); |
whismanoid | 5:67a1cd5a67cc | 411 | associatedCmdLine.serial().printf(" but got %6.6f", actual_result); |
whismanoid | 5:67a1cd5a67cc | 412 | associatedCmdLine.serial().printf(" err=%6.6f", err_result); |
whismanoid | 5:67a1cd5a67cc | 413 | return false; |
whismanoid | 5:67a1cd5a67cc | 414 | } |
whismanoid | 5:67a1cd5a67cc | 415 | //~ associatedCmdLine.serial().printf("\r\n"); |
whismanoid | 5:67a1cd5a67cc | 416 | } |
whismanoid | 5:67a1cd5a67cc | 417 | |
whismanoid | 5:67a1cd5a67cc | 418 | /** Test a software function |
whismanoid | 5:67a1cd5a67cc | 419 | * |
whismanoid | 5:67a1cd5a67cc | 420 | * @param[in] nameOfFunctionUnderTest is the user-facing name of the function under test |
whismanoid | 5:67a1cd5a67cc | 421 | * |
whismanoid | 5:67a1cd5a67cc | 422 | * @param[in] functionUnderTest points to the function under test |
whismanoid | 5:67a1cd5a67cc | 423 | * |
whismanoid | 8:9171f0ab3c17 | 424 | * @param[in] arg_1_d is a test argument given to the function under test |
whismanoid | 5:67a1cd5a67cc | 425 | * |
whismanoid | 5:67a1cd5a67cc | 426 | * @param[in] expect_result contains the expected result |
whismanoid | 5:67a1cd5a67cc | 427 | * |
whismanoid | 5:67a1cd5a67cc | 428 | * @pre err_threshold determines how closely the result must match the expected value |
whismanoid | 5:67a1cd5a67cc | 429 | * |
whismanoid | 5:67a1cd5a67cc | 430 | * @post nPass and nFail counters are updated |
whismanoid | 5:67a1cd5a67cc | 431 | * |
whismanoid | 5:67a1cd5a67cc | 432 | * @return true if success, false if test failed |
whismanoid | 5:67a1cd5a67cc | 433 | * |
whismanoid | 5:67a1cd5a67cc | 434 | */ |
whismanoid | 12:55db0f4a417d | 435 | bool MaximTinyTester::FunctionCall_f_f_Expect(const char *nameOfFunctionUnderTest, |
whismanoid | 5:67a1cd5a67cc | 436 | Callback<double(double)> functionUnderTest, |
whismanoid | 8:9171f0ab3c17 | 437 | double arg_1_d, |
whismanoid | 8:9171f0ab3c17 | 438 | double expect_result) |
whismanoid | 5:67a1cd5a67cc | 439 | { |
whismanoid | 8:9171f0ab3c17 | 440 | double actual_result = functionUnderTest(arg_1_d); |
whismanoid | 5:67a1cd5a67cc | 441 | double err_result = (actual_result - expect_result); |
whismanoid | 5:67a1cd5a67cc | 442 | if (( -err_threshold < err_result) && ( err_result < err_threshold)) |
whismanoid | 5:67a1cd5a67cc | 443 | { |
whismanoid | 5:67a1cd5a67cc | 444 | PASS(); |
whismanoid | 8:9171f0ab3c17 | 445 | associatedCmdLine.serial().printf("%s(%6.6f)", nameOfFunctionUnderTest, arg_1_d); |
whismanoid | 5:67a1cd5a67cc | 446 | associatedCmdLine.serial().printf(" expect %6.6f", expect_result); |
whismanoid | 5:67a1cd5a67cc | 447 | return true; |
whismanoid | 5:67a1cd5a67cc | 448 | } |
whismanoid | 5:67a1cd5a67cc | 449 | else |
whismanoid | 5:67a1cd5a67cc | 450 | { |
whismanoid | 5:67a1cd5a67cc | 451 | FAIL(); |
whismanoid | 8:9171f0ab3c17 | 452 | associatedCmdLine.serial().printf("%s(%6.6f)", nameOfFunctionUnderTest, arg_1_d); |
whismanoid | 5:67a1cd5a67cc | 453 | associatedCmdLine.serial().printf(" expect %6.6f", expect_result); |
whismanoid | 5:67a1cd5a67cc | 454 | associatedCmdLine.serial().printf(" but got %6.6f", actual_result); |
whismanoid | 5:67a1cd5a67cc | 455 | associatedCmdLine.serial().printf(" err=%6.6f", err_result); |
whismanoid | 5:67a1cd5a67cc | 456 | return false; |
whismanoid | 5:67a1cd5a67cc | 457 | } |
whismanoid | 5:67a1cd5a67cc | 458 | //~ associatedCmdLine.serial().printf("\r\n"); |
whismanoid | 5:67a1cd5a67cc | 459 | } |
whismanoid | 5:67a1cd5a67cc | 460 | |
whismanoid | 7:5b40b6370f8a | 461 | /** Test a software function |
whismanoid | 7:5b40b6370f8a | 462 | * |
whismanoid | 7:5b40b6370f8a | 463 | * @param[in] nameOfFunctionUnderTest is the user-facing name of the function under test |
whismanoid | 7:5b40b6370f8a | 464 | * |
whismanoid | 7:5b40b6370f8a | 465 | * @param[in] functionUnderTest points to the function under test |
whismanoid | 7:5b40b6370f8a | 466 | * |
whismanoid | 8:9171f0ab3c17 | 467 | * @param[in] expect_result contains the expected result |
whismanoid | 8:9171f0ab3c17 | 468 | * |
whismanoid | 8:9171f0ab3c17 | 469 | * @post nPass and nFail counters are updated |
whismanoid | 8:9171f0ab3c17 | 470 | * |
whismanoid | 8:9171f0ab3c17 | 471 | * @return true if success, false if test failed |
whismanoid | 8:9171f0ab3c17 | 472 | * |
whismanoid | 8:9171f0ab3c17 | 473 | */ |
whismanoid | 12:55db0f4a417d | 474 | bool MaximTinyTester::FunctionCall_su_Expect(const char *nameOfFunctionUnderTest, |
whismanoid | 8:9171f0ab3c17 | 475 | Callback<uint8_t()> functionUnderTest, |
whismanoid | 8:9171f0ab3c17 | 476 | uint8_t expect_result) |
whismanoid | 8:9171f0ab3c17 | 477 | { |
whismanoid | 8:9171f0ab3c17 | 478 | uint8_t actual_result = functionUnderTest(); |
whismanoid | 8:9171f0ab3c17 | 479 | if (actual_result != expect_result) |
whismanoid | 8:9171f0ab3c17 | 480 | { |
whismanoid | 8:9171f0ab3c17 | 481 | FAIL(); |
whismanoid | 8:9171f0ab3c17 | 482 | associatedCmdLine.serial().printf("%s()", nameOfFunctionUnderTest); |
whismanoid | 8:9171f0ab3c17 | 483 | associatedCmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 8:9171f0ab3c17 | 484 | associatedCmdLine.serial().printf(" but got %d", actual_result); |
whismanoid | 8:9171f0ab3c17 | 485 | return false; |
whismanoid | 8:9171f0ab3c17 | 486 | } |
whismanoid | 8:9171f0ab3c17 | 487 | else |
whismanoid | 8:9171f0ab3c17 | 488 | { |
whismanoid | 8:9171f0ab3c17 | 489 | PASS(); |
whismanoid | 8:9171f0ab3c17 | 490 | associatedCmdLine.serial().printf("%s()", nameOfFunctionUnderTest); |
whismanoid | 8:9171f0ab3c17 | 491 | associatedCmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 8:9171f0ab3c17 | 492 | return true; |
whismanoid | 8:9171f0ab3c17 | 493 | } |
whismanoid | 8:9171f0ab3c17 | 494 | //~ associatedCmdLine.serial().printf("\r\n"); |
whismanoid | 8:9171f0ab3c17 | 495 | } |
whismanoid | 8:9171f0ab3c17 | 496 | |
whismanoid | 8:9171f0ab3c17 | 497 | /** Test a software function |
whismanoid | 8:9171f0ab3c17 | 498 | * |
whismanoid | 8:9171f0ab3c17 | 499 | * @param[in] nameOfFunctionUnderTest is the user-facing name of the function under test |
whismanoid | 8:9171f0ab3c17 | 500 | * |
whismanoid | 8:9171f0ab3c17 | 501 | * @param[in] functionUnderTest points to the function under test |
whismanoid | 8:9171f0ab3c17 | 502 | * |
whismanoid | 7:5b40b6370f8a | 503 | * @param[in] arg_1 is a test argument given to the function under test |
whismanoid | 7:5b40b6370f8a | 504 | * |
whismanoid | 7:5b40b6370f8a | 505 | * @param[in] expect_result contains the expected result |
whismanoid | 7:5b40b6370f8a | 506 | * |
whismanoid | 7:5b40b6370f8a | 507 | * @post nPass and nFail counters are updated |
whismanoid | 7:5b40b6370f8a | 508 | * |
whismanoid | 7:5b40b6370f8a | 509 | * @return true if success, false if test failed |
whismanoid | 7:5b40b6370f8a | 510 | * |
whismanoid | 7:5b40b6370f8a | 511 | */ |
whismanoid | 12:55db0f4a417d | 512 | bool MaximTinyTester::FunctionCall_su_su_Expect(const char *nameOfFunctionUnderTest, |
whismanoid | 12:55db0f4a417d | 513 | Callback<uint8_t(uint8_t)> functionUnderTest, |
whismanoid | 12:55db0f4a417d | 514 | uint8_t arg_1, |
whismanoid | 12:55db0f4a417d | 515 | uint8_t expect_result) |
whismanoid | 12:55db0f4a417d | 516 | { |
whismanoid | 12:55db0f4a417d | 517 | uint8_t actual_result = functionUnderTest(arg_1); |
whismanoid | 12:55db0f4a417d | 518 | if (actual_result != expect_result) |
whismanoid | 12:55db0f4a417d | 519 | { |
whismanoid | 12:55db0f4a417d | 520 | FAIL(); |
whismanoid | 12:55db0f4a417d | 521 | associatedCmdLine.serial().printf("%s(%d)", nameOfFunctionUnderTest, arg_1); |
whismanoid | 12:55db0f4a417d | 522 | associatedCmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 12:55db0f4a417d | 523 | associatedCmdLine.serial().printf(" but got %d", actual_result); |
whismanoid | 12:55db0f4a417d | 524 | return false; |
whismanoid | 12:55db0f4a417d | 525 | } |
whismanoid | 12:55db0f4a417d | 526 | else |
whismanoid | 12:55db0f4a417d | 527 | { |
whismanoid | 12:55db0f4a417d | 528 | PASS(); |
whismanoid | 12:55db0f4a417d | 529 | associatedCmdLine.serial().printf("%s(%d)", nameOfFunctionUnderTest, arg_1); |
whismanoid | 12:55db0f4a417d | 530 | associatedCmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 12:55db0f4a417d | 531 | return true; |
whismanoid | 12:55db0f4a417d | 532 | } |
whismanoid | 12:55db0f4a417d | 533 | //~ associatedCmdLine.serial().printf("\r\n"); |
whismanoid | 12:55db0f4a417d | 534 | } |
whismanoid | 12:55db0f4a417d | 535 | |
whismanoid | 12:55db0f4a417d | 536 | /** Test a software function |
whismanoid | 12:55db0f4a417d | 537 | * |
whismanoid | 12:55db0f4a417d | 538 | * @param[in] nameOfFunctionUnderTest is the user-facing name of the function under test |
whismanoid | 12:55db0f4a417d | 539 | * |
whismanoid | 12:55db0f4a417d | 540 | * @param[in] functionUnderTest points to the function under test |
whismanoid | 12:55db0f4a417d | 541 | * |
whismanoid | 12:55db0f4a417d | 542 | * @param[in] arg_1 is a test argument given to the function under test |
whismanoid | 12:55db0f4a417d | 543 | * |
whismanoid | 12:55db0f4a417d | 544 | * @param[in] expect_result contains the expected result |
whismanoid | 12:55db0f4a417d | 545 | * |
whismanoid | 12:55db0f4a417d | 546 | * @post nPass and nFail counters are updated |
whismanoid | 12:55db0f4a417d | 547 | * |
whismanoid | 12:55db0f4a417d | 548 | * @return true if success, false if test failed |
whismanoid | 12:55db0f4a417d | 549 | * |
whismanoid | 12:55db0f4a417d | 550 | */ |
whismanoid | 12:55db0f4a417d | 551 | bool MaximTinyTester::FunctionCall_su_d_Expect(const char *nameOfFunctionUnderTest, |
whismanoid | 10:b11ab5d7ac58 | 552 | Callback<uint8_t(int)> functionUnderTest, |
whismanoid | 10:b11ab5d7ac58 | 553 | int arg_1, |
whismanoid | 7:5b40b6370f8a | 554 | uint8_t expect_result) |
whismanoid | 7:5b40b6370f8a | 555 | { |
whismanoid | 7:5b40b6370f8a | 556 | uint8_t actual_result = functionUnderTest(arg_1); |
whismanoid | 7:5b40b6370f8a | 557 | if (actual_result != expect_result) |
whismanoid | 7:5b40b6370f8a | 558 | { |
whismanoid | 7:5b40b6370f8a | 559 | FAIL(); |
whismanoid | 7:5b40b6370f8a | 560 | associatedCmdLine.serial().printf("%s(%d)", nameOfFunctionUnderTest, arg_1); |
whismanoid | 7:5b40b6370f8a | 561 | associatedCmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 7:5b40b6370f8a | 562 | associatedCmdLine.serial().printf(" but got %d", actual_result); |
whismanoid | 7:5b40b6370f8a | 563 | return false; |
whismanoid | 7:5b40b6370f8a | 564 | } |
whismanoid | 7:5b40b6370f8a | 565 | else |
whismanoid | 7:5b40b6370f8a | 566 | { |
whismanoid | 7:5b40b6370f8a | 567 | PASS(); |
whismanoid | 7:5b40b6370f8a | 568 | associatedCmdLine.serial().printf("%s(%d)", nameOfFunctionUnderTest, arg_1); |
whismanoid | 7:5b40b6370f8a | 569 | associatedCmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 7:5b40b6370f8a | 570 | return true; |
whismanoid | 7:5b40b6370f8a | 571 | } |
whismanoid | 7:5b40b6370f8a | 572 | //~ associatedCmdLine.serial().printf("\r\n"); |
whismanoid | 7:5b40b6370f8a | 573 | } |
whismanoid | 7:5b40b6370f8a | 574 | |
whismanoid | 7:5b40b6370f8a | 575 | /** Test a software function |
whismanoid | 7:5b40b6370f8a | 576 | * |
whismanoid | 7:5b40b6370f8a | 577 | * @param[in] nameOfFunctionUnderTest is the user-facing name of the function under test |
whismanoid | 7:5b40b6370f8a | 578 | * |
whismanoid | 7:5b40b6370f8a | 579 | * @param[in] functionUnderTest points to the function under test |
whismanoid | 7:5b40b6370f8a | 580 | * |
whismanoid | 7:5b40b6370f8a | 581 | * @param[in] arg_1 is a test argument given to the function under test |
whismanoid | 7:5b40b6370f8a | 582 | * @param[in] arg_2 is a test argument given to the function under test |
whismanoid | 7:5b40b6370f8a | 583 | * |
whismanoid | 7:5b40b6370f8a | 584 | * @param[in] expect_result contains the expected result |
whismanoid | 7:5b40b6370f8a | 585 | * |
whismanoid | 7:5b40b6370f8a | 586 | * @post nPass and nFail counters are updated |
whismanoid | 7:5b40b6370f8a | 587 | * |
whismanoid | 7:5b40b6370f8a | 588 | * @return true if success, false if test failed |
whismanoid | 7:5b40b6370f8a | 589 | * |
whismanoid | 7:5b40b6370f8a | 590 | */ |
whismanoid | 12:55db0f4a417d | 591 | bool MaximTinyTester::FunctionCall_su_su_su_Expect(const char *nameOfFunctionUnderTest, |
whismanoid | 12:55db0f4a417d | 592 | Callback<uint8_t(uint8_t, uint8_t)> functionUnderTest, |
whismanoid | 12:55db0f4a417d | 593 | uint8_t arg_1, |
whismanoid | 12:55db0f4a417d | 594 | uint8_t arg_2, |
whismanoid | 12:55db0f4a417d | 595 | uint8_t expect_result) |
whismanoid | 12:55db0f4a417d | 596 | { |
whismanoid | 12:55db0f4a417d | 597 | uint8_t actual_result = functionUnderTest(arg_1, arg_2); |
whismanoid | 12:55db0f4a417d | 598 | if (actual_result != expect_result) |
whismanoid | 12:55db0f4a417d | 599 | { |
whismanoid | 12:55db0f4a417d | 600 | FAIL(); |
whismanoid | 12:55db0f4a417d | 601 | associatedCmdLine.serial().printf("%s(%d,%d)", nameOfFunctionUnderTest, arg_1, arg_2); |
whismanoid | 12:55db0f4a417d | 602 | associatedCmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 12:55db0f4a417d | 603 | associatedCmdLine.serial().printf(" but got %d", actual_result); |
whismanoid | 12:55db0f4a417d | 604 | return false; |
whismanoid | 12:55db0f4a417d | 605 | } |
whismanoid | 12:55db0f4a417d | 606 | else |
whismanoid | 12:55db0f4a417d | 607 | { |
whismanoid | 12:55db0f4a417d | 608 | PASS(); |
whismanoid | 12:55db0f4a417d | 609 | associatedCmdLine.serial().printf("%s(%d,%d)", nameOfFunctionUnderTest, arg_1, arg_2); |
whismanoid | 12:55db0f4a417d | 610 | associatedCmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 12:55db0f4a417d | 611 | return true; |
whismanoid | 12:55db0f4a417d | 612 | } |
whismanoid | 12:55db0f4a417d | 613 | //~ associatedCmdLine.serial().printf("\r\n"); |
whismanoid | 12:55db0f4a417d | 614 | } |
whismanoid | 12:55db0f4a417d | 615 | |
whismanoid | 12:55db0f4a417d | 616 | /** Test a software function |
whismanoid | 12:55db0f4a417d | 617 | * |
whismanoid | 12:55db0f4a417d | 618 | * @param[in] nameOfFunctionUnderTest is the user-facing name of the function under test |
whismanoid | 12:55db0f4a417d | 619 | * |
whismanoid | 12:55db0f4a417d | 620 | * @param[in] functionUnderTest points to the function under test |
whismanoid | 12:55db0f4a417d | 621 | * |
whismanoid | 12:55db0f4a417d | 622 | * @param[in] arg_1 is a test argument given to the function under test |
whismanoid | 12:55db0f4a417d | 623 | * @param[in] arg_2 is a test argument given to the function under test |
whismanoid | 12:55db0f4a417d | 624 | * |
whismanoid | 12:55db0f4a417d | 625 | * @param[in] expect_result contains the expected result |
whismanoid | 12:55db0f4a417d | 626 | * |
whismanoid | 12:55db0f4a417d | 627 | * @post nPass and nFail counters are updated |
whismanoid | 12:55db0f4a417d | 628 | * |
whismanoid | 12:55db0f4a417d | 629 | * @return true if success, false if test failed |
whismanoid | 12:55db0f4a417d | 630 | * |
whismanoid | 12:55db0f4a417d | 631 | */ |
whismanoid | 12:55db0f4a417d | 632 | bool MaximTinyTester::FunctionCall_su_d_d_Expect(const char *nameOfFunctionUnderTest, |
whismanoid | 10:b11ab5d7ac58 | 633 | Callback<uint8_t(int, int)> functionUnderTest, |
whismanoid | 10:b11ab5d7ac58 | 634 | int arg_1, |
whismanoid | 10:b11ab5d7ac58 | 635 | int arg_2, |
whismanoid | 7:5b40b6370f8a | 636 | uint8_t expect_result) |
whismanoid | 7:5b40b6370f8a | 637 | { |
whismanoid | 7:5b40b6370f8a | 638 | uint8_t actual_result = functionUnderTest(arg_1, arg_2); |
whismanoid | 7:5b40b6370f8a | 639 | if (actual_result != expect_result) |
whismanoid | 7:5b40b6370f8a | 640 | { |
whismanoid | 7:5b40b6370f8a | 641 | FAIL(); |
whismanoid | 7:5b40b6370f8a | 642 | associatedCmdLine.serial().printf("%s(%d,%d)", nameOfFunctionUnderTest, arg_1, arg_2); |
whismanoid | 7:5b40b6370f8a | 643 | associatedCmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 7:5b40b6370f8a | 644 | associatedCmdLine.serial().printf(" but got %d", actual_result); |
whismanoid | 7:5b40b6370f8a | 645 | return false; |
whismanoid | 7:5b40b6370f8a | 646 | } |
whismanoid | 7:5b40b6370f8a | 647 | else |
whismanoid | 7:5b40b6370f8a | 648 | { |
whismanoid | 7:5b40b6370f8a | 649 | PASS(); |
whismanoid | 7:5b40b6370f8a | 650 | associatedCmdLine.serial().printf("%s(%d,%d)", nameOfFunctionUnderTest, arg_1, arg_2); |
whismanoid | 7:5b40b6370f8a | 651 | associatedCmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 7:5b40b6370f8a | 652 | return true; |
whismanoid | 7:5b40b6370f8a | 653 | } |
whismanoid | 7:5b40b6370f8a | 654 | //~ associatedCmdLine.serial().printf("\r\n"); |
whismanoid | 7:5b40b6370f8a | 655 | } |
whismanoid | 7:5b40b6370f8a | 656 | |
whismanoid | 12:55db0f4a417d | 657 | /** Test a software function |
whismanoid | 12:55db0f4a417d | 658 | * |
whismanoid | 12:55db0f4a417d | 659 | * @param[in] nameOfFunctionUnderTest is the user-facing name of the function under test |
whismanoid | 12:55db0f4a417d | 660 | * |
whismanoid | 12:55db0f4a417d | 661 | * @param[in] functionUnderTest points to the function under test |
whismanoid | 12:55db0f4a417d | 662 | * |
whismanoid | 12:55db0f4a417d | 663 | * @param[in] arg_1 is a test argument given to the function under test |
whismanoid | 12:55db0f4a417d | 664 | * @param[in] arg_2 is a test argument given to the function under test |
whismanoid | 12:55db0f4a417d | 665 | * |
whismanoid | 12:55db0f4a417d | 666 | * @param[in] expect_result contains the expected result |
whismanoid | 12:55db0f4a417d | 667 | * |
whismanoid | 12:55db0f4a417d | 668 | * @post nPass and nFail counters are updated |
whismanoid | 12:55db0f4a417d | 669 | * |
whismanoid | 12:55db0f4a417d | 670 | * @return true if success, false if test failed |
whismanoid | 12:55db0f4a417d | 671 | * |
whismanoid | 12:55db0f4a417d | 672 | */ |
whismanoid | 12:55db0f4a417d | 673 | bool MaximTinyTester::FunctionCall_su_d_lu_Expect(const char *nameOfFunctionUnderTest, |
whismanoid | 12:55db0f4a417d | 674 | Callback<uint8_t(int, uint32_t)> functionUnderTest, |
whismanoid | 12:55db0f4a417d | 675 | int arg_1, |
whismanoid | 12:55db0f4a417d | 676 | uint32_t arg_2, |
whismanoid | 12:55db0f4a417d | 677 | uint8_t expect_result) |
whismanoid | 12:55db0f4a417d | 678 | { |
whismanoid | 12:55db0f4a417d | 679 | uint8_t actual_result = functionUnderTest(arg_1, arg_2); |
whismanoid | 12:55db0f4a417d | 680 | if (actual_result != expect_result) |
whismanoid | 12:55db0f4a417d | 681 | { |
whismanoid | 12:55db0f4a417d | 682 | FAIL(); |
whismanoid | 13:c294236d7465 | 683 | associatedCmdLine.serial().printf("%s(%d,%ld)", nameOfFunctionUnderTest, arg_1, arg_2); |
whismanoid | 12:55db0f4a417d | 684 | associatedCmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 12:55db0f4a417d | 685 | associatedCmdLine.serial().printf(" but got %d", actual_result); |
whismanoid | 12:55db0f4a417d | 686 | return false; |
whismanoid | 12:55db0f4a417d | 687 | } |
whismanoid | 12:55db0f4a417d | 688 | else |
whismanoid | 12:55db0f4a417d | 689 | { |
whismanoid | 12:55db0f4a417d | 690 | PASS(); |
whismanoid | 13:c294236d7465 | 691 | associatedCmdLine.serial().printf("%s(%d,%ld)", nameOfFunctionUnderTest, arg_1, arg_2); |
whismanoid | 12:55db0f4a417d | 692 | associatedCmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 12:55db0f4a417d | 693 | return true; |
whismanoid | 12:55db0f4a417d | 694 | } |
whismanoid | 12:55db0f4a417d | 695 | //~ associatedCmdLine.serial().printf("\r\n"); |
whismanoid | 12:55db0f4a417d | 696 | } |
whismanoid | 12:55db0f4a417d | 697 | |
whismanoid | 12:55db0f4a417d | 698 | bool MaximTinyTester::FunctionCall_su_d_plu_Expect(const char *nameOfFunctionUnderTest, |
whismanoid | 10:b11ab5d7ac58 | 699 | Callback<uint8_t(int, uint32_t*)> functionUnderTest, |
whismanoid | 10:b11ab5d7ac58 | 700 | int arg_1, |
whismanoid | 10:b11ab5d7ac58 | 701 | uint32_t* arg_2, |
whismanoid | 10:b11ab5d7ac58 | 702 | uint8_t expect_result, |
whismanoid | 10:b11ab5d7ac58 | 703 | uint32_t expect_buffer) |
whismanoid | 10:b11ab5d7ac58 | 704 | { |
whismanoid | 10:b11ab5d7ac58 | 705 | uint8_t actual_result = functionUnderTest(arg_1, arg_2); |
whismanoid | 10:b11ab5d7ac58 | 706 | uint32_t actual_buffer = *arg_2; |
whismanoid | 10:b11ab5d7ac58 | 707 | if ((actual_result != expect_result) || (actual_buffer != expect_buffer)) |
whismanoid | 10:b11ab5d7ac58 | 708 | { |
whismanoid | 10:b11ab5d7ac58 | 709 | FAIL(); |
whismanoid | 10:b11ab5d7ac58 | 710 | associatedCmdLine.serial().printf("%s(%d,buf)", nameOfFunctionUnderTest, arg_1); |
whismanoid | 10:b11ab5d7ac58 | 711 | //associatedCmdLine.serial().print(nameOfFunctionUnderTest); |
whismanoid | 10:b11ab5d7ac58 | 712 | //associatedCmdLine.serial().print("("); |
whismanoid | 10:b11ab5d7ac58 | 713 | //associatedCmdLine.serial().print(arg_1); |
whismanoid | 10:b11ab5d7ac58 | 714 | //associatedCmdLine.serial().print(F(",buf)")); |
whismanoid | 13:c294236d7465 | 715 | associatedCmdLine.serial().printf(" expect %d buf=%ld", expect_result, expect_buffer); |
whismanoid | 10:b11ab5d7ac58 | 716 | //associatedCmdLine.serial().print(F(" expect ")); |
whismanoid | 10:b11ab5d7ac58 | 717 | //associatedCmdLine.serial().print(expect_result); |
whismanoid | 10:b11ab5d7ac58 | 718 | //associatedCmdLine.serial().print(F(" buf=")); |
whismanoid | 10:b11ab5d7ac58 | 719 | //associatedCmdLine.serial().print(expect_buffer); |
whismanoid | 13:c294236d7465 | 720 | associatedCmdLine.serial().printf(" but got %d buf=%ld", actual_result, actual_buffer); |
whismanoid | 10:b11ab5d7ac58 | 721 | //associatedCmdLine.serial().print(F(" but got ")); |
whismanoid | 10:b11ab5d7ac58 | 722 | //associatedCmdLine.serial().print(actual_result); |
whismanoid | 10:b11ab5d7ac58 | 723 | //associatedCmdLine.serial().print(F(" buf=")); |
whismanoid | 10:b11ab5d7ac58 | 724 | //associatedCmdLine.serial().print(actual_buffer); |
whismanoid | 10:b11ab5d7ac58 | 725 | return false; |
whismanoid | 10:b11ab5d7ac58 | 726 | } |
whismanoid | 10:b11ab5d7ac58 | 727 | else |
whismanoid | 10:b11ab5d7ac58 | 728 | { |
whismanoid | 10:b11ab5d7ac58 | 729 | PASS(); |
whismanoid | 10:b11ab5d7ac58 | 730 | associatedCmdLine.serial().printf("%s(%d,buf)", nameOfFunctionUnderTest, arg_1); |
whismanoid | 10:b11ab5d7ac58 | 731 | //associatedCmdLine.serial().print(nameOfFunctionUnderTest); |
whismanoid | 10:b11ab5d7ac58 | 732 | //associatedCmdLine.serial().print("("); |
whismanoid | 10:b11ab5d7ac58 | 733 | //associatedCmdLine.serial().print(arg_1); |
whismanoid | 10:b11ab5d7ac58 | 734 | //associatedCmdLine.serial().print(F(",buf)")); |
whismanoid | 13:c294236d7465 | 735 | associatedCmdLine.serial().printf(" expect %d buf=%ld", expect_result, expect_buffer); |
whismanoid | 10:b11ab5d7ac58 | 736 | //associatedCmdLine.serial().print(F(" expect ")); |
whismanoid | 10:b11ab5d7ac58 | 737 | //associatedCmdLine.serial().print(expect_result); |
whismanoid | 10:b11ab5d7ac58 | 738 | //associatedCmdLine.serial().print(F(" buf=")); |
whismanoid | 10:b11ab5d7ac58 | 739 | //associatedCmdLine.serial().print(expect_buffer); |
whismanoid | 10:b11ab5d7ac58 | 740 | return true; |
whismanoid | 10:b11ab5d7ac58 | 741 | } |
whismanoid | 10:b11ab5d7ac58 | 742 | //~ associatedCmdLine.serial().printf("\r\n"); |
whismanoid | 10:b11ab5d7ac58 | 743 | } |
whismanoid | 10:b11ab5d7ac58 | 744 | |
whismanoid | 7:5b40b6370f8a | 745 | /** Test a software function |
whismanoid | 7:5b40b6370f8a | 746 | * |
whismanoid | 7:5b40b6370f8a | 747 | * @param[in] nameOfFunctionUnderTest is the user-facing name of the function under test |
whismanoid | 7:5b40b6370f8a | 748 | * |
whismanoid | 7:5b40b6370f8a | 749 | * @param[in] functionUnderTest points to the function under test |
whismanoid | 7:5b40b6370f8a | 750 | * |
whismanoid | 7:5b40b6370f8a | 751 | * @param[in] arg_1 is a test argument given to the function under test |
whismanoid | 7:5b40b6370f8a | 752 | * @param[in] arg_2 is a test argument given to the function under test |
whismanoid | 7:5b40b6370f8a | 753 | * @param[in] arg_3 is a test argument given to the function under test |
whismanoid | 7:5b40b6370f8a | 754 | * |
whismanoid | 7:5b40b6370f8a | 755 | * @param[in] expect_result contains the expected result |
whismanoid | 7:5b40b6370f8a | 756 | * |
whismanoid | 7:5b40b6370f8a | 757 | * @post nPass and nFail counters are updated |
whismanoid | 7:5b40b6370f8a | 758 | * |
whismanoid | 7:5b40b6370f8a | 759 | * @return true if success, false if test failed |
whismanoid | 7:5b40b6370f8a | 760 | * |
whismanoid | 7:5b40b6370f8a | 761 | */ |
whismanoid | 12:55db0f4a417d | 762 | bool MaximTinyTester::FunctionCall_su_su_su_su_Expect(const char *nameOfFunctionUnderTest, |
whismanoid | 7:5b40b6370f8a | 763 | Callback<uint8_t(uint8_t, uint8_t, uint8_t)> functionUnderTest, |
whismanoid | 7:5b40b6370f8a | 764 | uint8_t arg_1, |
whismanoid | 7:5b40b6370f8a | 765 | uint8_t arg_2, |
whismanoid | 7:5b40b6370f8a | 766 | uint8_t arg_3, |
whismanoid | 7:5b40b6370f8a | 767 | uint8_t expect_result) |
whismanoid | 7:5b40b6370f8a | 768 | { |
whismanoid | 7:5b40b6370f8a | 769 | uint8_t actual_result = functionUnderTest(arg_1, arg_2, arg_3); |
whismanoid | 7:5b40b6370f8a | 770 | if (actual_result != expect_result) |
whismanoid | 7:5b40b6370f8a | 771 | { |
whismanoid | 7:5b40b6370f8a | 772 | FAIL(); |
whismanoid | 7:5b40b6370f8a | 773 | associatedCmdLine.serial().printf("%s(%d,%d,%d)", nameOfFunctionUnderTest, arg_1, arg_2, arg_3); |
whismanoid | 7:5b40b6370f8a | 774 | associatedCmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 7:5b40b6370f8a | 775 | associatedCmdLine.serial().printf(" but got %d", actual_result); |
whismanoid | 7:5b40b6370f8a | 776 | return false; |
whismanoid | 7:5b40b6370f8a | 777 | } |
whismanoid | 7:5b40b6370f8a | 778 | else |
whismanoid | 7:5b40b6370f8a | 779 | { |
whismanoid | 7:5b40b6370f8a | 780 | PASS(); |
whismanoid | 7:5b40b6370f8a | 781 | associatedCmdLine.serial().printf("%s(%d,%d,%d)", nameOfFunctionUnderTest, arg_1, arg_2, arg_3); |
whismanoid | 7:5b40b6370f8a | 782 | associatedCmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 7:5b40b6370f8a | 783 | return true; |
whismanoid | 7:5b40b6370f8a | 784 | } |
whismanoid | 7:5b40b6370f8a | 785 | //~ associatedCmdLine.serial().printf("\r\n"); |
whismanoid | 7:5b40b6370f8a | 786 | } |
whismanoid | 7:5b40b6370f8a | 787 | |
whismanoid | 7:5b40b6370f8a | 788 | /** Test a software function |
whismanoid | 7:5b40b6370f8a | 789 | * |
whismanoid | 7:5b40b6370f8a | 790 | * @param[in] nameOfFunctionUnderTest is the user-facing name of the function under test |
whismanoid | 7:5b40b6370f8a | 791 | * |
whismanoid | 7:5b40b6370f8a | 792 | * @param[in] functionUnderTest points to the function under test |
whismanoid | 7:5b40b6370f8a | 793 | * |
whismanoid | 7:5b40b6370f8a | 794 | * @param[in] arg_1 is a test argument given to the function under test |
whismanoid | 7:5b40b6370f8a | 795 | * @param[in] arg_2 is a test argument given to the function under test |
whismanoid | 7:5b40b6370f8a | 796 | * @param[in] arg_3 is a test argument given to the function under test |
whismanoid | 7:5b40b6370f8a | 797 | * @param[in] arg_4 is a test argument given to the function under test |
whismanoid | 7:5b40b6370f8a | 798 | * |
whismanoid | 7:5b40b6370f8a | 799 | * @param[in] expect_result contains the expected result |
whismanoid | 7:5b40b6370f8a | 800 | * |
whismanoid | 7:5b40b6370f8a | 801 | * @post nPass and nFail counters are updated |
whismanoid | 7:5b40b6370f8a | 802 | * |
whismanoid | 7:5b40b6370f8a | 803 | * @return true if success, false if test failed |
whismanoid | 7:5b40b6370f8a | 804 | * |
whismanoid | 7:5b40b6370f8a | 805 | */ |
whismanoid | 12:55db0f4a417d | 806 | bool MaximTinyTester::FunctionCall_su_su_su_su_su_Expect(const char *nameOfFunctionUnderTest, |
whismanoid | 7:5b40b6370f8a | 807 | Callback<uint8_t(uint8_t, uint8_t, uint8_t, uint8_t)> functionUnderTest, |
whismanoid | 7:5b40b6370f8a | 808 | uint8_t arg_1, |
whismanoid | 7:5b40b6370f8a | 809 | uint8_t arg_2, |
whismanoid | 7:5b40b6370f8a | 810 | uint8_t arg_3, |
whismanoid | 7:5b40b6370f8a | 811 | uint8_t arg_4, |
whismanoid | 7:5b40b6370f8a | 812 | uint8_t expect_result) |
whismanoid | 7:5b40b6370f8a | 813 | { |
whismanoid | 7:5b40b6370f8a | 814 | uint8_t actual_result = functionUnderTest(arg_1, arg_2, arg_3, arg_4); |
whismanoid | 7:5b40b6370f8a | 815 | if (actual_result != expect_result) |
whismanoid | 7:5b40b6370f8a | 816 | { |
whismanoid | 7:5b40b6370f8a | 817 | FAIL(); |
whismanoid | 7:5b40b6370f8a | 818 | associatedCmdLine.serial().printf("%s(%d,%d,%d,%d)", nameOfFunctionUnderTest, arg_1, arg_2, arg_3, arg_4); |
whismanoid | 7:5b40b6370f8a | 819 | associatedCmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 7:5b40b6370f8a | 820 | associatedCmdLine.serial().printf(" but got %d", actual_result); |
whismanoid | 7:5b40b6370f8a | 821 | return false; |
whismanoid | 7:5b40b6370f8a | 822 | } |
whismanoid | 7:5b40b6370f8a | 823 | else |
whismanoid | 7:5b40b6370f8a | 824 | { |
whismanoid | 7:5b40b6370f8a | 825 | PASS(); |
whismanoid | 7:5b40b6370f8a | 826 | associatedCmdLine.serial().printf("%s(%d,%d,%d,%d)", nameOfFunctionUnderTest, arg_1, arg_2, arg_3, arg_4); |
whismanoid | 7:5b40b6370f8a | 827 | associatedCmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 7:5b40b6370f8a | 828 | return true; |
whismanoid | 7:5b40b6370f8a | 829 | } |
whismanoid | 7:5b40b6370f8a | 830 | //~ associatedCmdLine.serial().printf("\r\n"); |
whismanoid | 7:5b40b6370f8a | 831 | } |
whismanoid | 7:5b40b6370f8a | 832 | |
whismanoid | 7:5b40b6370f8a | 833 | /** Test a software function |
whismanoid | 7:5b40b6370f8a | 834 | * |
whismanoid | 7:5b40b6370f8a | 835 | * @param[in] nameOfFunctionUnderTest is the user-facing name of the function under test |
whismanoid | 7:5b40b6370f8a | 836 | * |
whismanoid | 7:5b40b6370f8a | 837 | * @param[in] functionUnderTest points to the function under test |
whismanoid | 7:5b40b6370f8a | 838 | * |
whismanoid | 7:5b40b6370f8a | 839 | * @param[in] arg_1 is a test argument given to the function under test |
whismanoid | 7:5b40b6370f8a | 840 | * @param[in] arg_2 is a test argument given to the function under test |
whismanoid | 7:5b40b6370f8a | 841 | * @param[in] arg_3 is a test argument given to the function under test |
whismanoid | 7:5b40b6370f8a | 842 | * @param[in] arg_4 is a test argument given to the function under test |
whismanoid | 7:5b40b6370f8a | 843 | * @param[in] arg_5 is a test argument given to the function under test |
whismanoid | 7:5b40b6370f8a | 844 | * |
whismanoid | 7:5b40b6370f8a | 845 | * @param[in] expect_result contains the expected result |
whismanoid | 7:5b40b6370f8a | 846 | * |
whismanoid | 7:5b40b6370f8a | 847 | * @post nPass and nFail counters are updated |
whismanoid | 7:5b40b6370f8a | 848 | * |
whismanoid | 7:5b40b6370f8a | 849 | * @return true if success, false if test failed |
whismanoid | 7:5b40b6370f8a | 850 | * |
whismanoid | 7:5b40b6370f8a | 851 | */ |
whismanoid | 12:55db0f4a417d | 852 | bool MaximTinyTester::FunctionCall_su_su_su_su_su_su_Expect(const char *nameOfFunctionUnderTest, |
whismanoid | 7:5b40b6370f8a | 853 | Callback<uint8_t(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t)> functionUnderTest, |
whismanoid | 7:5b40b6370f8a | 854 | uint8_t arg_1, |
whismanoid | 7:5b40b6370f8a | 855 | uint8_t arg_2, |
whismanoid | 7:5b40b6370f8a | 856 | uint8_t arg_3, |
whismanoid | 7:5b40b6370f8a | 857 | uint8_t arg_4, |
whismanoid | 7:5b40b6370f8a | 858 | uint8_t arg_5, |
whismanoid | 7:5b40b6370f8a | 859 | uint8_t expect_result) |
whismanoid | 7:5b40b6370f8a | 860 | { |
whismanoid | 7:5b40b6370f8a | 861 | uint8_t actual_result = functionUnderTest(arg_1, arg_2, arg_3, arg_4, arg_5); |
whismanoid | 7:5b40b6370f8a | 862 | if (actual_result != expect_result) |
whismanoid | 7:5b40b6370f8a | 863 | { |
whismanoid | 7:5b40b6370f8a | 864 | FAIL(); |
whismanoid | 7:5b40b6370f8a | 865 | associatedCmdLine.serial().printf("%s(%d,%d,%d,%d,%d)", nameOfFunctionUnderTest, arg_1, arg_2, arg_3, arg_4, arg_5); |
whismanoid | 7:5b40b6370f8a | 866 | associatedCmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 7:5b40b6370f8a | 867 | associatedCmdLine.serial().printf(" but got %d", actual_result); |
whismanoid | 7:5b40b6370f8a | 868 | return false; |
whismanoid | 7:5b40b6370f8a | 869 | } |
whismanoid | 7:5b40b6370f8a | 870 | else |
whismanoid | 7:5b40b6370f8a | 871 | { |
whismanoid | 7:5b40b6370f8a | 872 | PASS(); |
whismanoid | 7:5b40b6370f8a | 873 | associatedCmdLine.serial().printf("%s(%d,%d,%d,%d,%d)", nameOfFunctionUnderTest, arg_1, arg_2, arg_3, arg_4, arg_5); |
whismanoid | 7:5b40b6370f8a | 874 | associatedCmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 7:5b40b6370f8a | 875 | return true; |
whismanoid | 7:5b40b6370f8a | 876 | } |
whismanoid | 7:5b40b6370f8a | 877 | //~ associatedCmdLine.serial().printf("\r\n"); |
whismanoid | 7:5b40b6370f8a | 878 | } |
whismanoid | 7:5b40b6370f8a | 879 | |
whismanoid | 7:5b40b6370f8a | 880 | // TODO1 #167 support callback<uint8_t(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t)> |
whismanoid | 7:5b40b6370f8a | 881 | /** Test a software function |
whismanoid | 7:5b40b6370f8a | 882 | * |
whismanoid | 7:5b40b6370f8a | 883 | * @param[in] nameOfFunctionUnderTest is the user-facing name of the function under test |
whismanoid | 7:5b40b6370f8a | 884 | * |
whismanoid | 7:5b40b6370f8a | 885 | * @param[in] functionUnderTest points to the function under test |
whismanoid | 7:5b40b6370f8a | 886 | * |
whismanoid | 7:5b40b6370f8a | 887 | * @param[in] arg_1 is a test argument given to the function under test |
whismanoid | 7:5b40b6370f8a | 888 | * @param[in] arg_2 is a test argument given to the function under test |
whismanoid | 7:5b40b6370f8a | 889 | * @param[in] arg_3 is a test argument given to the function under test |
whismanoid | 7:5b40b6370f8a | 890 | * @param[in] arg_4 is a test argument given to the function under test |
whismanoid | 7:5b40b6370f8a | 891 | * @param[in] arg_5 is a test argument given to the function under test |
whismanoid | 7:5b40b6370f8a | 892 | * @param[in] arg_6 is a test argument given to the function under test |
whismanoid | 7:5b40b6370f8a | 893 | * |
whismanoid | 7:5b40b6370f8a | 894 | * @param[in] expect_result contains the expected result |
whismanoid | 7:5b40b6370f8a | 895 | * |
whismanoid | 7:5b40b6370f8a | 896 | * @post nPass and nFail counters are updated |
whismanoid | 7:5b40b6370f8a | 897 | * |
whismanoid | 7:5b40b6370f8a | 898 | * @return true if success, false if test failed |
whismanoid | 7:5b40b6370f8a | 899 | * |
whismanoid | 7:5b40b6370f8a | 900 | */ |
whismanoid | 12:55db0f4a417d | 901 | //bool MaximTinyTester::FunctionCall_su_su_su_su_su_su_su_Expect(const char *nameOfFunctionUnderTest, |
whismanoid | 7:5b40b6370f8a | 902 | // Callback<uint8_t(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t)> functionUnderTest, |
whismanoid | 7:5b40b6370f8a | 903 | // uint8_t arg_1, |
whismanoid | 7:5b40b6370f8a | 904 | // uint8_t arg_2, |
whismanoid | 7:5b40b6370f8a | 905 | // uint8_t arg_3, |
whismanoid | 7:5b40b6370f8a | 906 | // uint8_t arg_4, |
whismanoid | 7:5b40b6370f8a | 907 | // uint8_t arg_5, |
whismanoid | 7:5b40b6370f8a | 908 | // uint8_t arg_6, |
whismanoid | 7:5b40b6370f8a | 909 | // uint8_t expect_result) |
whismanoid | 7:5b40b6370f8a | 910 | //{ |
whismanoid | 7:5b40b6370f8a | 911 | // uint8_t actual_result = functionUnderTest(arg_1, arg_2, arg_3, arg_4, arg_5, arg_6); |
whismanoid | 7:5b40b6370f8a | 912 | // if (actual_result != expect_result) |
whismanoid | 7:5b40b6370f8a | 913 | // { |
whismanoid | 7:5b40b6370f8a | 914 | // FAIL(); |
whismanoid | 7:5b40b6370f8a | 915 | // associatedCmdLine.serial().printf("%s(%d,%d,%d,%d,%d,%d)", nameOfFunctionUnderTest, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6); |
whismanoid | 7:5b40b6370f8a | 916 | // associatedCmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 7:5b40b6370f8a | 917 | // associatedCmdLine.serial().printf(" but got %d", actual_result); |
whismanoid | 7:5b40b6370f8a | 918 | // return false; |
whismanoid | 7:5b40b6370f8a | 919 | // } |
whismanoid | 7:5b40b6370f8a | 920 | // else |
whismanoid | 7:5b40b6370f8a | 921 | // { |
whismanoid | 7:5b40b6370f8a | 922 | // PASS(); |
whismanoid | 7:5b40b6370f8a | 923 | // associatedCmdLine.serial().printf("%s(%d,%d,%d,%d,%d,%d)", nameOfFunctionUnderTest, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6); |
whismanoid | 7:5b40b6370f8a | 924 | // associatedCmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 7:5b40b6370f8a | 925 | // return true; |
whismanoid | 7:5b40b6370f8a | 926 | // } |
whismanoid | 7:5b40b6370f8a | 927 | // //~ associatedCmdLine.serial().printf("\r\n"); |
whismanoid | 7:5b40b6370f8a | 928 | //} |
whismanoid | 7:5b40b6370f8a | 929 | |
whismanoid | 0:93d4119d3f14 | 930 | /** Test an analog voltage input to the platform (output from the device under test) |
whismanoid | 0:93d4119d3f14 | 931 | * |
whismanoid | 0:93d4119d3f14 | 932 | * @param[in] expect_result contains the expected voltage |
whismanoid | 0:93d4119d3f14 | 933 | * |
whismanoid | 0:93d4119d3f14 | 934 | * @pre err_threshold determines how closely the result must match the expected value |
whismanoid | 0:93d4119d3f14 | 935 | * |
whismanoid | 0:93d4119d3f14 | 936 | * @post nPass and nFail counters are updated |
whismanoid | 0:93d4119d3f14 | 937 | * |
whismanoid | 0:93d4119d3f14 | 938 | * @return true if success, false if test failed |
whismanoid | 0:93d4119d3f14 | 939 | * |
whismanoid | 0:93d4119d3f14 | 940 | */ |
whismanoid | 0:93d4119d3f14 | 941 | bool MaximTinyTester::AnalogIn0_Read_Expect_voltageV(double expect_result) |
whismanoid | 0:93d4119d3f14 | 942 | { |
whismanoid | 0:93d4119d3f14 | 943 | float adc_full_scale_voltage = analogInPin_fullScaleVoltage[0]; |
whismanoid | 2:9b20cadbfa15 | 944 | // skip if expect_result exceeds ADC full scale |
whismanoid | 2:9b20cadbfa15 | 945 | if (adc_full_scale_voltage < expect_result) |
whismanoid | 2:9b20cadbfa15 | 946 | { |
whismanoid | 2:9b20cadbfa15 | 947 | // print a warning message that we can't perform the measurement |
whismanoid | 2:9b20cadbfa15 | 948 | associatedCmdLine.serial().printf("\r\n..... AIN full scale %1.3fV < expect %6.6f cannot perform measurement", |
whismanoid | 2:9b20cadbfa15 | 949 | adc_full_scale_voltage, expect_result); |
whismanoid | 2:9b20cadbfa15 | 950 | return true; // ignore, test conditions are invalid; do not call PASS() or FAIL() |
whismanoid | 2:9b20cadbfa15 | 951 | } |
whismanoid | 0:93d4119d3f14 | 952 | |
whismanoid | 0:93d4119d3f14 | 953 | // TODO: tinyTester.Analog_Input_Expect_V replaces SelfTest_AnalogInput_Expect_ch_V |
whismanoid | 0:93d4119d3f14 | 954 | // Platform board uses simple analog inputs |
whismanoid | 0:93d4119d3f14 | 955 | float normValue_0_1 = analogInPin0.read(); |
whismanoid | 0:93d4119d3f14 | 956 | double actual_result = normValue_0_1 * adc_full_scale_voltage; |
whismanoid | 0:93d4119d3f14 | 957 | double err_result = (actual_result - expect_result); |
whismanoid | 0:93d4119d3f14 | 958 | if (( -err_threshold < err_result) && ( err_result < err_threshold)) |
whismanoid | 0:93d4119d3f14 | 959 | { |
whismanoid | 0:93d4119d3f14 | 960 | PASS(); |
whismanoid | 0:93d4119d3f14 | 961 | //~ SelfTest_print_VoltageOfCode(cmdLine, value_u12); |
whismanoid | 0:93d4119d3f14 | 962 | // Platform board uses simple analog inputs |
whismanoid | 0:93d4119d3f14 | 963 | associatedCmdLine.serial().printf("AIN0 = %7.3f%% = %1.3fV ", |
whismanoid | 0:93d4119d3f14 | 964 | normValue_0_1 * 100.0, |
whismanoid | 0:93d4119d3f14 | 965 | normValue_0_1 * adc_full_scale_voltage |
whismanoid | 0:93d4119d3f14 | 966 | ); |
whismanoid | 0:93d4119d3f14 | 967 | // |
whismanoid | 0:93d4119d3f14 | 968 | associatedCmdLine.serial().printf(" expect %6.6f +/- %6.6f", expect_result, err_threshold); |
whismanoid | 0:93d4119d3f14 | 969 | return true; |
whismanoid | 0:93d4119d3f14 | 970 | } |
whismanoid | 0:93d4119d3f14 | 971 | else |
whismanoid | 0:93d4119d3f14 | 972 | { |
whismanoid | 0:93d4119d3f14 | 973 | FAIL(); |
whismanoid | 0:93d4119d3f14 | 974 | //~ SelfTest_print_VoltageOfCode(cmdLine, value_u12); |
whismanoid | 0:93d4119d3f14 | 975 | // Platform board uses simple analog inputs |
whismanoid | 0:93d4119d3f14 | 976 | associatedCmdLine.serial().printf("AIN0 = %7.3f%% = %1.3fV ", |
whismanoid | 0:93d4119d3f14 | 977 | normValue_0_1 * 100.0, |
whismanoid | 0:93d4119d3f14 | 978 | normValue_0_1 * adc_full_scale_voltage |
whismanoid | 0:93d4119d3f14 | 979 | ); |
whismanoid | 0:93d4119d3f14 | 980 | // |
whismanoid | 0:93d4119d3f14 | 981 | associatedCmdLine.serial().printf(" expect %6.6f +/- %6.6f", expect_result, err_threshold); |
whismanoid | 0:93d4119d3f14 | 982 | associatedCmdLine.serial().printf(" but got %6.6f", actual_result); |
whismanoid | 0:93d4119d3f14 | 983 | associatedCmdLine.serial().printf(" err=%6.6f", err_result); |
whismanoid | 0:93d4119d3f14 | 984 | } |
whismanoid | 0:93d4119d3f14 | 985 | //~ associatedCmdLine.serial().printf("\r\n"); |
whismanoid | 0:93d4119d3f14 | 986 | return false; |
whismanoid | 0:93d4119d3f14 | 987 | } |
whismanoid | 0:93d4119d3f14 | 988 | |
whismanoid | 0:93d4119d3f14 | 989 | /** Test an analog voltage input to the platform (output from the device under test) |
whismanoid | 0:93d4119d3f14 | 990 | * |
whismanoid | 0:93d4119d3f14 | 991 | * @param[in] expect_result contains the expected voltage |
whismanoid | 0:93d4119d3f14 | 992 | * |
whismanoid | 0:93d4119d3f14 | 993 | * @pre err_threshold determines how closely the result must match the expected value |
whismanoid | 0:93d4119d3f14 | 994 | * |
whismanoid | 0:93d4119d3f14 | 995 | * @post nPass and nFail counters are updated |
whismanoid | 0:93d4119d3f14 | 996 | * |
whismanoid | 0:93d4119d3f14 | 997 | * @return true if success, false if test failed |
whismanoid | 0:93d4119d3f14 | 998 | * |
whismanoid | 0:93d4119d3f14 | 999 | */ |
whismanoid | 0:93d4119d3f14 | 1000 | bool MaximTinyTester::AnalogIn1_Read_Expect_voltageV(double expect_result) |
whismanoid | 0:93d4119d3f14 | 1001 | { |
whismanoid | 0:93d4119d3f14 | 1002 | float adc_full_scale_voltage = analogInPin_fullScaleVoltage[1]; |
whismanoid | 2:9b20cadbfa15 | 1003 | // skip if expect_result exceeds ADC full scale |
whismanoid | 2:9b20cadbfa15 | 1004 | if (adc_full_scale_voltage < expect_result) |
whismanoid | 2:9b20cadbfa15 | 1005 | { |
whismanoid | 2:9b20cadbfa15 | 1006 | // print a warning message that we can't perform the measurement |
whismanoid | 2:9b20cadbfa15 | 1007 | associatedCmdLine.serial().printf("\r\n..... AIN full scale %1.3fV < expect %6.6f cannot perform measurement", |
whismanoid | 2:9b20cadbfa15 | 1008 | adc_full_scale_voltage, expect_result); |
whismanoid | 2:9b20cadbfa15 | 1009 | return true; // ignore, test conditions are invalid; do not call PASS() or FAIL() |
whismanoid | 2:9b20cadbfa15 | 1010 | } |
whismanoid | 0:93d4119d3f14 | 1011 | |
whismanoid | 0:93d4119d3f14 | 1012 | // TODO: tinyTester.Analog_Input_Expect_V replaces SelfTest_AnalogInput_Expect_ch_V |
whismanoid | 0:93d4119d3f14 | 1013 | // Platform board uses simple analog inputs |
whismanoid | 0:93d4119d3f14 | 1014 | float normValue_0_1 = analogInPin1.read(); |
whismanoid | 0:93d4119d3f14 | 1015 | double actual_result = normValue_0_1 * adc_full_scale_voltage; |
whismanoid | 0:93d4119d3f14 | 1016 | double err_result = (actual_result - expect_result); |
whismanoid | 0:93d4119d3f14 | 1017 | if (( -err_threshold < err_result) && ( err_result < err_threshold)) |
whismanoid | 0:93d4119d3f14 | 1018 | { |
whismanoid | 0:93d4119d3f14 | 1019 | PASS(); |
whismanoid | 0:93d4119d3f14 | 1020 | //~ SelfTest_print_VoltageOfCode(cmdLine, value_u12); |
whismanoid | 0:93d4119d3f14 | 1021 | // Platform board uses simple analog inputs |
whismanoid | 0:93d4119d3f14 | 1022 | associatedCmdLine.serial().printf("AIN1 = %7.3f%% = %1.3fV ", |
whismanoid | 0:93d4119d3f14 | 1023 | normValue_0_1 * 100.0, |
whismanoid | 0:93d4119d3f14 | 1024 | normValue_0_1 * adc_full_scale_voltage |
whismanoid | 0:93d4119d3f14 | 1025 | ); |
whismanoid | 0:93d4119d3f14 | 1026 | // |
whismanoid | 0:93d4119d3f14 | 1027 | associatedCmdLine.serial().printf(" expect %6.6f +/- %6.6f", expect_result, err_threshold); |
whismanoid | 0:93d4119d3f14 | 1028 | return true; |
whismanoid | 0:93d4119d3f14 | 1029 | } |
whismanoid | 0:93d4119d3f14 | 1030 | else |
whismanoid | 0:93d4119d3f14 | 1031 | { |
whismanoid | 0:93d4119d3f14 | 1032 | FAIL(); |
whismanoid | 0:93d4119d3f14 | 1033 | //~ SelfTest_print_VoltageOfCode(cmdLine, value_u12); |
whismanoid | 0:93d4119d3f14 | 1034 | // Platform board uses simple analog inputs |
whismanoid | 0:93d4119d3f14 | 1035 | associatedCmdLine.serial().printf("AIN1 = %7.3f%% = %1.3fV ", |
whismanoid | 0:93d4119d3f14 | 1036 | normValue_0_1 * 100.0, |
whismanoid | 0:93d4119d3f14 | 1037 | normValue_0_1 * adc_full_scale_voltage |
whismanoid | 0:93d4119d3f14 | 1038 | ); |
whismanoid | 0:93d4119d3f14 | 1039 | // |
whismanoid | 0:93d4119d3f14 | 1040 | associatedCmdLine.serial().printf(" expect %6.6f +/- %6.6f", expect_result, err_threshold); |
whismanoid | 0:93d4119d3f14 | 1041 | associatedCmdLine.serial().printf(" but got %6.6f", actual_result); |
whismanoid | 0:93d4119d3f14 | 1042 | associatedCmdLine.serial().printf(" err=%6.6f", err_result); |
whismanoid | 0:93d4119d3f14 | 1043 | } |
whismanoid | 0:93d4119d3f14 | 1044 | //~ associatedCmdLine.serial().printf("\r\n"); |
whismanoid | 0:93d4119d3f14 | 1045 | return false; |
whismanoid | 0:93d4119d3f14 | 1046 | } |
whismanoid | 0:93d4119d3f14 | 1047 | |
whismanoid | 0:93d4119d3f14 | 1048 | /** Test an analog voltage input to the platform (output from the device under test) |
whismanoid | 0:93d4119d3f14 | 1049 | * |
whismanoid | 0:93d4119d3f14 | 1050 | * @param[in] expect_result contains the expected voltage |
whismanoid | 0:93d4119d3f14 | 1051 | * |
whismanoid | 0:93d4119d3f14 | 1052 | * @pre err_threshold determines how closely the result must match the expected value |
whismanoid | 0:93d4119d3f14 | 1053 | * |
whismanoid | 0:93d4119d3f14 | 1054 | * @post nPass and nFail counters are updated |
whismanoid | 0:93d4119d3f14 | 1055 | * |
whismanoid | 0:93d4119d3f14 | 1056 | * @return true if success, false if test failed |
whismanoid | 0:93d4119d3f14 | 1057 | * |
whismanoid | 0:93d4119d3f14 | 1058 | */ |
whismanoid | 0:93d4119d3f14 | 1059 | bool MaximTinyTester::AnalogIn2_Read_Expect_voltageV(double expect_result) |
whismanoid | 0:93d4119d3f14 | 1060 | { |
whismanoid | 0:93d4119d3f14 | 1061 | float adc_full_scale_voltage = analogInPin_fullScaleVoltage[2]; |
whismanoid | 2:9b20cadbfa15 | 1062 | // skip if expect_result exceeds ADC full scale |
whismanoid | 2:9b20cadbfa15 | 1063 | if (adc_full_scale_voltage < expect_result) |
whismanoid | 2:9b20cadbfa15 | 1064 | { |
whismanoid | 2:9b20cadbfa15 | 1065 | // print a warning message that we can't perform the measurement |
whismanoid | 2:9b20cadbfa15 | 1066 | associatedCmdLine.serial().printf("\r\n..... AIN full scale %1.3fV < expect %6.6f cannot perform measurement", |
whismanoid | 2:9b20cadbfa15 | 1067 | adc_full_scale_voltage, expect_result); |
whismanoid | 2:9b20cadbfa15 | 1068 | return true; // ignore, test conditions are invalid; do not call PASS() or FAIL() |
whismanoid | 2:9b20cadbfa15 | 1069 | } |
whismanoid | 0:93d4119d3f14 | 1070 | |
whismanoid | 0:93d4119d3f14 | 1071 | // TODO: tinyTester.Analog_Input_Expect_V replaces SelfTest_AnalogInput_Expect_ch_V |
whismanoid | 0:93d4119d3f14 | 1072 | // Platform board uses simple analog inputs |
whismanoid | 0:93d4119d3f14 | 1073 | float normValue_0_1 = analogInPin2.read(); |
whismanoid | 0:93d4119d3f14 | 1074 | double actual_result = normValue_0_1 * adc_full_scale_voltage; |
whismanoid | 0:93d4119d3f14 | 1075 | double err_result = (actual_result - expect_result); |
whismanoid | 0:93d4119d3f14 | 1076 | if (( -err_threshold < err_result) && ( err_result < err_threshold)) |
whismanoid | 0:93d4119d3f14 | 1077 | { |
whismanoid | 0:93d4119d3f14 | 1078 | PASS(); |
whismanoid | 0:93d4119d3f14 | 1079 | //~ SelfTest_print_VoltageOfCode(cmdLine, value_u12); |
whismanoid | 0:93d4119d3f14 | 1080 | // Platform board uses simple analog inputs |
whismanoid | 0:93d4119d3f14 | 1081 | associatedCmdLine.serial().printf("AIN2 = %7.3f%% = %1.3fV ", |
whismanoid | 0:93d4119d3f14 | 1082 | normValue_0_1 * 100.0, |
whismanoid | 0:93d4119d3f14 | 1083 | normValue_0_1 * adc_full_scale_voltage |
whismanoid | 0:93d4119d3f14 | 1084 | ); |
whismanoid | 0:93d4119d3f14 | 1085 | // |
whismanoid | 0:93d4119d3f14 | 1086 | associatedCmdLine.serial().printf(" expect %6.6f +/- %6.6f", expect_result, err_threshold); |
whismanoid | 0:93d4119d3f14 | 1087 | return true; |
whismanoid | 0:93d4119d3f14 | 1088 | } |
whismanoid | 0:93d4119d3f14 | 1089 | else |
whismanoid | 0:93d4119d3f14 | 1090 | { |
whismanoid | 0:93d4119d3f14 | 1091 | FAIL(); |
whismanoid | 0:93d4119d3f14 | 1092 | //~ SelfTest_print_VoltageOfCode(cmdLine, value_u12); |
whismanoid | 0:93d4119d3f14 | 1093 | // Platform board uses simple analog inputs |
whismanoid | 0:93d4119d3f14 | 1094 | associatedCmdLine.serial().printf("AIN2 = %7.3f%% = %1.3fV ", |
whismanoid | 0:93d4119d3f14 | 1095 | normValue_0_1 * 100.0, |
whismanoid | 0:93d4119d3f14 | 1096 | normValue_0_1 * adc_full_scale_voltage |
whismanoid | 0:93d4119d3f14 | 1097 | ); |
whismanoid | 0:93d4119d3f14 | 1098 | // |
whismanoid | 0:93d4119d3f14 | 1099 | associatedCmdLine.serial().printf(" expect %6.6f +/- %6.6f", expect_result, err_threshold); |
whismanoid | 0:93d4119d3f14 | 1100 | associatedCmdLine.serial().printf(" but got %6.6f", actual_result); |
whismanoid | 0:93d4119d3f14 | 1101 | associatedCmdLine.serial().printf(" err=%6.6f", err_result); |
whismanoid | 0:93d4119d3f14 | 1102 | } |
whismanoid | 0:93d4119d3f14 | 1103 | //~ associatedCmdLine.serial().printf("\r\n"); |
whismanoid | 0:93d4119d3f14 | 1104 | return false; |
whismanoid | 0:93d4119d3f14 | 1105 | } |
whismanoid | 0:93d4119d3f14 | 1106 | |
whismanoid | 0:93d4119d3f14 | 1107 | /** Test an analog voltage input to the platform (output from the device under test) |
whismanoid | 0:93d4119d3f14 | 1108 | * |
whismanoid | 0:93d4119d3f14 | 1109 | * @param[in] expect_result contains the expected voltage |
whismanoid | 0:93d4119d3f14 | 1110 | * |
whismanoid | 0:93d4119d3f14 | 1111 | * @pre err_threshold determines how closely the result must match the expected value |
whismanoid | 0:93d4119d3f14 | 1112 | * |
whismanoid | 0:93d4119d3f14 | 1113 | * @post nPass and nFail counters are updated |
whismanoid | 0:93d4119d3f14 | 1114 | * |
whismanoid | 0:93d4119d3f14 | 1115 | * @return true if success, false if test failed |
whismanoid | 0:93d4119d3f14 | 1116 | * |
whismanoid | 0:93d4119d3f14 | 1117 | */ |
whismanoid | 0:93d4119d3f14 | 1118 | bool MaximTinyTester::AnalogIn3_Read_Expect_voltageV(double expect_result) |
whismanoid | 0:93d4119d3f14 | 1119 | { |
whismanoid | 0:93d4119d3f14 | 1120 | float adc_full_scale_voltage = analogInPin_fullScaleVoltage[3]; |
whismanoid | 2:9b20cadbfa15 | 1121 | // skip if expect_result exceeds ADC full scale |
whismanoid | 2:9b20cadbfa15 | 1122 | if (adc_full_scale_voltage < expect_result) |
whismanoid | 2:9b20cadbfa15 | 1123 | { |
whismanoid | 2:9b20cadbfa15 | 1124 | // print a warning message that we can't perform the measurement |
whismanoid | 2:9b20cadbfa15 | 1125 | associatedCmdLine.serial().printf("\r\n..... AIN full scale %1.3fV < expect %6.6f cannot perform measurement", |
whismanoid | 2:9b20cadbfa15 | 1126 | adc_full_scale_voltage, expect_result); |
whismanoid | 2:9b20cadbfa15 | 1127 | return true; // ignore, test conditions are invalid; do not call PASS() or FAIL() |
whismanoid | 2:9b20cadbfa15 | 1128 | } |
whismanoid | 0:93d4119d3f14 | 1129 | |
whismanoid | 0:93d4119d3f14 | 1130 | // TODO: tinyTester.Analog_Input_Expect_V replaces SelfTest_AnalogInput_Expect_ch_V |
whismanoid | 0:93d4119d3f14 | 1131 | // Platform board uses simple analog inputs |
whismanoid | 0:93d4119d3f14 | 1132 | float normValue_0_1 = analogInPin3.read(); |
whismanoid | 0:93d4119d3f14 | 1133 | double actual_result = normValue_0_1 * adc_full_scale_voltage; |
whismanoid | 0:93d4119d3f14 | 1134 | double err_result = (actual_result - expect_result); |
whismanoid | 0:93d4119d3f14 | 1135 | if (( -err_threshold < err_result) && ( err_result < err_threshold)) |
whismanoid | 0:93d4119d3f14 | 1136 | { |
whismanoid | 0:93d4119d3f14 | 1137 | PASS(); |
whismanoid | 0:93d4119d3f14 | 1138 | //~ SelfTest_print_VoltageOfCode(cmdLine, value_u12); |
whismanoid | 0:93d4119d3f14 | 1139 | // Platform board uses simple analog inputs |
whismanoid | 0:93d4119d3f14 | 1140 | associatedCmdLine.serial().printf("AIN3 = %7.3f%% = %1.3fV ", |
whismanoid | 0:93d4119d3f14 | 1141 | normValue_0_1 * 100.0, |
whismanoid | 0:93d4119d3f14 | 1142 | normValue_0_1 * adc_full_scale_voltage |
whismanoid | 0:93d4119d3f14 | 1143 | ); |
whismanoid | 0:93d4119d3f14 | 1144 | // |
whismanoid | 0:93d4119d3f14 | 1145 | associatedCmdLine.serial().printf(" expect %6.6f +/- %6.6f", expect_result, err_threshold); |
whismanoid | 0:93d4119d3f14 | 1146 | return true; |
whismanoid | 0:93d4119d3f14 | 1147 | } |
whismanoid | 0:93d4119d3f14 | 1148 | else |
whismanoid | 0:93d4119d3f14 | 1149 | { |
whismanoid | 0:93d4119d3f14 | 1150 | FAIL(); |
whismanoid | 0:93d4119d3f14 | 1151 | //~ SelfTest_print_VoltageOfCode(cmdLine, value_u12); |
whismanoid | 0:93d4119d3f14 | 1152 | // Platform board uses simple analog inputs |
whismanoid | 0:93d4119d3f14 | 1153 | associatedCmdLine.serial().printf("AIN3 = %7.3f%% = %1.3fV ", |
whismanoid | 0:93d4119d3f14 | 1154 | normValue_0_1 * 100.0, |
whismanoid | 0:93d4119d3f14 | 1155 | normValue_0_1 * adc_full_scale_voltage |
whismanoid | 0:93d4119d3f14 | 1156 | ); |
whismanoid | 0:93d4119d3f14 | 1157 | // |
whismanoid | 0:93d4119d3f14 | 1158 | associatedCmdLine.serial().printf(" expect %6.6f +/- %6.6f", expect_result, err_threshold); |
whismanoid | 0:93d4119d3f14 | 1159 | associatedCmdLine.serial().printf(" but got %6.6f", actual_result); |
whismanoid | 0:93d4119d3f14 | 1160 | associatedCmdLine.serial().printf(" err=%6.6f", err_result); |
whismanoid | 0:93d4119d3f14 | 1161 | } |
whismanoid | 0:93d4119d3f14 | 1162 | //~ associatedCmdLine.serial().printf("\r\n"); |
whismanoid | 0:93d4119d3f14 | 1163 | return false; |
whismanoid | 0:93d4119d3f14 | 1164 | } |
whismanoid | 0:93d4119d3f14 | 1165 | |
whismanoid | 0:93d4119d3f14 | 1166 | /** Test an analog voltage input to the platform (output from the device under test) |
whismanoid | 0:93d4119d3f14 | 1167 | * |
whismanoid | 0:93d4119d3f14 | 1168 | * @param[in] expect_result contains the expected voltage |
whismanoid | 0:93d4119d3f14 | 1169 | * |
whismanoid | 0:93d4119d3f14 | 1170 | * @pre err_threshold determines how closely the result must match the expected value |
whismanoid | 0:93d4119d3f14 | 1171 | * |
whismanoid | 0:93d4119d3f14 | 1172 | * @post nPass and nFail counters are updated |
whismanoid | 0:93d4119d3f14 | 1173 | * |
whismanoid | 0:93d4119d3f14 | 1174 | * @return true if success, false if test failed |
whismanoid | 0:93d4119d3f14 | 1175 | * |
whismanoid | 0:93d4119d3f14 | 1176 | */ |
whismanoid | 0:93d4119d3f14 | 1177 | bool MaximTinyTester::AnalogIn4_Read_Expect_voltageV(double expect_result) |
whismanoid | 0:93d4119d3f14 | 1178 | { |
whismanoid | 0:93d4119d3f14 | 1179 | float adc_full_scale_voltage = analogInPin_fullScaleVoltage[4]; |
whismanoid | 2:9b20cadbfa15 | 1180 | // skip if expect_result exceeds ADC full scale |
whismanoid | 2:9b20cadbfa15 | 1181 | if (adc_full_scale_voltage < expect_result) |
whismanoid | 2:9b20cadbfa15 | 1182 | { |
whismanoid | 2:9b20cadbfa15 | 1183 | // print a warning message that we can't perform the measurement |
whismanoid | 2:9b20cadbfa15 | 1184 | associatedCmdLine.serial().printf("\r\n..... AIN full scale %1.3fV < expect %6.6f cannot perform measurement", |
whismanoid | 2:9b20cadbfa15 | 1185 | adc_full_scale_voltage, expect_result); |
whismanoid | 2:9b20cadbfa15 | 1186 | return true; // ignore, test conditions are invalid; do not call PASS() or FAIL() |
whismanoid | 2:9b20cadbfa15 | 1187 | } |
whismanoid | 0:93d4119d3f14 | 1188 | |
whismanoid | 0:93d4119d3f14 | 1189 | // TODO: tinyTester.Analog_Input_Expect_V replaces SelfTest_AnalogInput_Expect_ch_V |
whismanoid | 0:93d4119d3f14 | 1190 | // Platform board uses simple analog inputs |
whismanoid | 0:93d4119d3f14 | 1191 | float normValue_0_1 = analogInPin4.read(); |
whismanoid | 0:93d4119d3f14 | 1192 | double actual_result = normValue_0_1 * adc_full_scale_voltage; |
whismanoid | 0:93d4119d3f14 | 1193 | double err_result = (actual_result - expect_result); |
whismanoid | 0:93d4119d3f14 | 1194 | if (( -err_threshold < err_result) && ( err_result < err_threshold)) |
whismanoid | 0:93d4119d3f14 | 1195 | { |
whismanoid | 0:93d4119d3f14 | 1196 | PASS(); |
whismanoid | 0:93d4119d3f14 | 1197 | //~ SelfTest_print_VoltageOfCode(cmdLine, value_u12); |
whismanoid | 0:93d4119d3f14 | 1198 | // Platform board uses simple analog inputs |
whismanoid | 0:93d4119d3f14 | 1199 | associatedCmdLine.serial().printf("AIN4 = %7.3f%% = %1.3fV ", |
whismanoid | 0:93d4119d3f14 | 1200 | normValue_0_1 * 100.0, |
whismanoid | 0:93d4119d3f14 | 1201 | normValue_0_1 * adc_full_scale_voltage |
whismanoid | 0:93d4119d3f14 | 1202 | ); |
whismanoid | 0:93d4119d3f14 | 1203 | // |
whismanoid | 0:93d4119d3f14 | 1204 | associatedCmdLine.serial().printf(" expect %6.6f +/- %6.6f", expect_result, err_threshold); |
whismanoid | 0:93d4119d3f14 | 1205 | return true; |
whismanoid | 0:93d4119d3f14 | 1206 | } |
whismanoid | 0:93d4119d3f14 | 1207 | else |
whismanoid | 0:93d4119d3f14 | 1208 | { |
whismanoid | 0:93d4119d3f14 | 1209 | FAIL(); |
whismanoid | 0:93d4119d3f14 | 1210 | //~ SelfTest_print_VoltageOfCode(cmdLine, value_u12); |
whismanoid | 0:93d4119d3f14 | 1211 | // Platform board uses simple analog inputs |
whismanoid | 0:93d4119d3f14 | 1212 | associatedCmdLine.serial().printf("AIN4 = %7.3f%% = %1.3fV ", |
whismanoid | 0:93d4119d3f14 | 1213 | normValue_0_1 * 100.0, |
whismanoid | 0:93d4119d3f14 | 1214 | normValue_0_1 * adc_full_scale_voltage |
whismanoid | 0:93d4119d3f14 | 1215 | ); |
whismanoid | 0:93d4119d3f14 | 1216 | // |
whismanoid | 0:93d4119d3f14 | 1217 | associatedCmdLine.serial().printf(" expect %6.6f +/- %6.6f", expect_result, err_threshold); |
whismanoid | 0:93d4119d3f14 | 1218 | associatedCmdLine.serial().printf(" but got %6.6f", actual_result); |
whismanoid | 0:93d4119d3f14 | 1219 | associatedCmdLine.serial().printf(" err=%6.6f", err_result); |
whismanoid | 0:93d4119d3f14 | 1220 | } |
whismanoid | 0:93d4119d3f14 | 1221 | //~ associatedCmdLine.serial().printf("\r\n"); |
whismanoid | 0:93d4119d3f14 | 1222 | return false; |
whismanoid | 0:93d4119d3f14 | 1223 | } |
whismanoid | 0:93d4119d3f14 | 1224 | |
whismanoid | 0:93d4119d3f14 | 1225 | /** Test an analog voltage input to the platform (output from the device under test) |
whismanoid | 0:93d4119d3f14 | 1226 | * |
whismanoid | 0:93d4119d3f14 | 1227 | * @param[in] expect_result contains the expected voltage |
whismanoid | 0:93d4119d3f14 | 1228 | * |
whismanoid | 0:93d4119d3f14 | 1229 | * @pre err_threshold determines how closely the result must match the expected value |
whismanoid | 0:93d4119d3f14 | 1230 | * |
whismanoid | 0:93d4119d3f14 | 1231 | * @post nPass and nFail counters are updated |
whismanoid | 0:93d4119d3f14 | 1232 | * |
whismanoid | 0:93d4119d3f14 | 1233 | * @return true if success, false if test failed |
whismanoid | 0:93d4119d3f14 | 1234 | * |
whismanoid | 0:93d4119d3f14 | 1235 | */ |
whismanoid | 0:93d4119d3f14 | 1236 | bool MaximTinyTester::AnalogIn5_Read_Expect_voltageV(double expect_result) |
whismanoid | 0:93d4119d3f14 | 1237 | { |
whismanoid | 0:93d4119d3f14 | 1238 | float adc_full_scale_voltage = analogInPin_fullScaleVoltage[5]; |
whismanoid | 2:9b20cadbfa15 | 1239 | // skip if expect_result exceeds ADC full scale |
whismanoid | 2:9b20cadbfa15 | 1240 | if (adc_full_scale_voltage < expect_result) |
whismanoid | 2:9b20cadbfa15 | 1241 | { |
whismanoid | 2:9b20cadbfa15 | 1242 | // print a warning message that we can't perform the measurement |
whismanoid | 2:9b20cadbfa15 | 1243 | associatedCmdLine.serial().printf("\r\n..... AIN full scale %1.3fV < expect %6.6f cannot perform measurement", |
whismanoid | 2:9b20cadbfa15 | 1244 | adc_full_scale_voltage, expect_result); |
whismanoid | 2:9b20cadbfa15 | 1245 | return true; // ignore, test conditions are invalid; do not call PASS() or FAIL() |
whismanoid | 2:9b20cadbfa15 | 1246 | } |
whismanoid | 0:93d4119d3f14 | 1247 | |
whismanoid | 0:93d4119d3f14 | 1248 | // TODO: tinyTester.Analog_Input_Expect_V replaces SelfTest_AnalogInput_Expect_ch_V |
whismanoid | 0:93d4119d3f14 | 1249 | // Platform board uses simple analog inputs |
whismanoid | 0:93d4119d3f14 | 1250 | float normValue_0_1 = analogInPin5.read(); |
whismanoid | 0:93d4119d3f14 | 1251 | double actual_result = normValue_0_1 * adc_full_scale_voltage; |
whismanoid | 0:93d4119d3f14 | 1252 | double err_result = (actual_result - expect_result); |
whismanoid | 0:93d4119d3f14 | 1253 | if (( -err_threshold < err_result) && ( err_result < err_threshold)) |
whismanoid | 0:93d4119d3f14 | 1254 | { |
whismanoid | 0:93d4119d3f14 | 1255 | PASS(); |
whismanoid | 0:93d4119d3f14 | 1256 | //~ SelfTest_print_VoltageOfCode(cmdLine, value_u12); |
whismanoid | 0:93d4119d3f14 | 1257 | // Platform board uses simple analog inputs |
whismanoid | 0:93d4119d3f14 | 1258 | associatedCmdLine.serial().printf("AIN5 = %7.3f%% = %1.3fV ", |
whismanoid | 0:93d4119d3f14 | 1259 | normValue_0_1 * 100.0, |
whismanoid | 0:93d4119d3f14 | 1260 | normValue_0_1 * adc_full_scale_voltage |
whismanoid | 0:93d4119d3f14 | 1261 | ); |
whismanoid | 0:93d4119d3f14 | 1262 | // |
whismanoid | 0:93d4119d3f14 | 1263 | associatedCmdLine.serial().printf(" expect %6.6f +/- %6.6f", expect_result, err_threshold); |
whismanoid | 0:93d4119d3f14 | 1264 | return true; |
whismanoid | 0:93d4119d3f14 | 1265 | } |
whismanoid | 0:93d4119d3f14 | 1266 | else |
whismanoid | 0:93d4119d3f14 | 1267 | { |
whismanoid | 0:93d4119d3f14 | 1268 | FAIL(); |
whismanoid | 0:93d4119d3f14 | 1269 | //~ SelfTest_print_VoltageOfCode(cmdLine, value_u12); |
whismanoid | 0:93d4119d3f14 | 1270 | // Platform board uses simple analog inputs |
whismanoid | 0:93d4119d3f14 | 1271 | associatedCmdLine.serial().printf("AIN5 = %7.3f%% = %1.3fV ", |
whismanoid | 0:93d4119d3f14 | 1272 | normValue_0_1 * 100.0, |
whismanoid | 0:93d4119d3f14 | 1273 | normValue_0_1 * adc_full_scale_voltage |
whismanoid | 0:93d4119d3f14 | 1274 | ); |
whismanoid | 0:93d4119d3f14 | 1275 | // |
whismanoid | 0:93d4119d3f14 | 1276 | associatedCmdLine.serial().printf(" expect %6.6f +/- %6.6f", expect_result, err_threshold); |
whismanoid | 0:93d4119d3f14 | 1277 | associatedCmdLine.serial().printf(" but got %6.6f", actual_result); |
whismanoid | 0:93d4119d3f14 | 1278 | associatedCmdLine.serial().printf(" err=%6.6f", err_result); |
whismanoid | 0:93d4119d3f14 | 1279 | } |
whismanoid | 0:93d4119d3f14 | 1280 | //~ associatedCmdLine.serial().printf("\r\n"); |
whismanoid | 0:93d4119d3f14 | 1281 | return false; |
whismanoid | 0:93d4119d3f14 | 1282 | } |
whismanoid | 0:93d4119d3f14 | 1283 | |
whismanoid | 0:93d4119d3f14 | 1284 | bool MaximTinyTester::AnalogIn_Read_Expect_voltageV(AnalogIn& analogInPin, double expect_result) |
whismanoid | 0:93d4119d3f14 | 1285 | { |
whismanoid | 0:93d4119d3f14 | 1286 | float adc_full_scale_voltage = analogInPin_fullScaleVoltage[0]; |
whismanoid | 2:9b20cadbfa15 | 1287 | // skip if expect_result exceeds ADC full scale |
whismanoid | 2:9b20cadbfa15 | 1288 | if (adc_full_scale_voltage < expect_result) |
whismanoid | 2:9b20cadbfa15 | 1289 | { |
whismanoid | 2:9b20cadbfa15 | 1290 | // print a warning message that we can't perform the measurement |
whismanoid | 2:9b20cadbfa15 | 1291 | associatedCmdLine.serial().printf("\r\n..... AIN full scale %1.3fV < expect %6.6f cannot perform measurement", |
whismanoid | 2:9b20cadbfa15 | 1292 | adc_full_scale_voltage, expect_result); |
whismanoid | 2:9b20cadbfa15 | 1293 | return true; // ignore, test conditions are invalid; do not call PASS() or FAIL() |
whismanoid | 2:9b20cadbfa15 | 1294 | } |
whismanoid | 0:93d4119d3f14 | 1295 | |
whismanoid | 0:93d4119d3f14 | 1296 | // TODO: tinyTester.Analog_Input_Expect_V replaces SelfTest_AnalogInput_Expect_ch_V |
whismanoid | 0:93d4119d3f14 | 1297 | // Platform board uses simple analog inputs |
whismanoid | 0:93d4119d3f14 | 1298 | float normValue_0_1 = analogInPin.read(); |
whismanoid | 0:93d4119d3f14 | 1299 | double actual_result = normValue_0_1 * adc_full_scale_voltage; |
whismanoid | 0:93d4119d3f14 | 1300 | double err_result = (actual_result - expect_result); |
whismanoid | 0:93d4119d3f14 | 1301 | if (( -err_threshold < err_result) && ( err_result < err_threshold)) |
whismanoid | 0:93d4119d3f14 | 1302 | { |
whismanoid | 0:93d4119d3f14 | 1303 | PASS(); |
whismanoid | 0:93d4119d3f14 | 1304 | //~ SelfTest_print_VoltageOfCode(cmdLine, value_u12); |
whismanoid | 0:93d4119d3f14 | 1305 | // Platform board uses simple analog inputs |
whismanoid | 0:93d4119d3f14 | 1306 | associatedCmdLine.serial().printf("AIN0 = %7.3f%% = %1.3fV ", |
whismanoid | 0:93d4119d3f14 | 1307 | normValue_0_1 * 100.0, |
whismanoid | 0:93d4119d3f14 | 1308 | normValue_0_1 * adc_full_scale_voltage |
whismanoid | 0:93d4119d3f14 | 1309 | ); |
whismanoid | 0:93d4119d3f14 | 1310 | // |
whismanoid | 0:93d4119d3f14 | 1311 | associatedCmdLine.serial().printf(" expect %6.6f +/- %6.6f", expect_result, err_threshold); |
whismanoid | 0:93d4119d3f14 | 1312 | return true; |
whismanoid | 0:93d4119d3f14 | 1313 | } |
whismanoid | 0:93d4119d3f14 | 1314 | else |
whismanoid | 0:93d4119d3f14 | 1315 | { |
whismanoid | 0:93d4119d3f14 | 1316 | FAIL(); |
whismanoid | 0:93d4119d3f14 | 1317 | //~ SelfTest_print_VoltageOfCode(cmdLine, value_u12); |
whismanoid | 0:93d4119d3f14 | 1318 | // Platform board uses simple analog inputs |
whismanoid | 0:93d4119d3f14 | 1319 | associatedCmdLine.serial().printf("AIN0 = %7.3f%% = %1.3fV ", |
whismanoid | 0:93d4119d3f14 | 1320 | normValue_0_1 * 100.0, |
whismanoid | 0:93d4119d3f14 | 1321 | normValue_0_1 * adc_full_scale_voltage |
whismanoid | 0:93d4119d3f14 | 1322 | ); |
whismanoid | 0:93d4119d3f14 | 1323 | // |
whismanoid | 0:93d4119d3f14 | 1324 | associatedCmdLine.serial().printf(" expect %6.6f +/- %6.6f", expect_result, err_threshold); |
whismanoid | 0:93d4119d3f14 | 1325 | associatedCmdLine.serial().printf(" but got %6.6f", actual_result); |
whismanoid | 0:93d4119d3f14 | 1326 | associatedCmdLine.serial().printf(" err=%6.6f", err_result); |
whismanoid | 0:93d4119d3f14 | 1327 | } |
whismanoid | 0:93d4119d3f14 | 1328 | //~ associatedCmdLine.serial().printf("\r\n"); |
whismanoid | 0:93d4119d3f14 | 1329 | return false; |
whismanoid | 0:93d4119d3f14 | 1330 | } |
whismanoid | 0:93d4119d3f14 | 1331 | |
whismanoid | 0:93d4119d3f14 | 1332 | bool MaximTinyTester::DigitalIn_Read_Expect_WarnOnly(DigitalIn& digitalInPin, const char* pinName, int expect_result, const char *expect_description) |
whismanoid | 0:93d4119d3f14 | 1333 | { |
whismanoid | 0:93d4119d3f14 | 1334 | int actual_UPO_value = -1; |
whismanoid | 0:93d4119d3f14 | 1335 | for (int retry_count = 0; retry_count < 10; retry_count++) { |
whismanoid | 0:93d4119d3f14 | 1336 | actual_UPO_value = digitalInPin.read(); // g_MAX5171_device.UPOinputValue(); |
whismanoid | 0:93d4119d3f14 | 1337 | if (actual_UPO_value == expect_result) { |
whismanoid | 0:93d4119d3f14 | 1338 | PASS(); |
whismanoid | 0:93d4119d3f14 | 1339 | associatedCmdLine.serial().printf("%s signal=%d %s", pinName, expect_result, expect_description); |
whismanoid | 0:93d4119d3f14 | 1340 | return true; |
whismanoid | 0:93d4119d3f14 | 1341 | } |
whismanoid | 0:93d4119d3f14 | 1342 | // UPO condition not met, retry for a while until give up |
whismanoid | 0:93d4119d3f14 | 1343 | wait_ms(input_timeout_time_msec / 10); // delay |
whismanoid | 0:93d4119d3f14 | 1344 | } |
whismanoid | 0:93d4119d3f14 | 1345 | associatedCmdLine.serial().printf("\r\n!WARN "); // SelfTest_FAIL(cmdLine); |
whismanoid | 0:93d4119d3f14 | 1346 | associatedCmdLine.serial().printf("expected %s signal=%d %s", pinName, expect_result, expect_description); |
whismanoid | 0:93d4119d3f14 | 1347 | associatedCmdLine.serial().printf(", but got actual %s=%d", pinName, actual_UPO_value); |
whismanoid | 0:93d4119d3f14 | 1348 | associatedCmdLine.serial().printf(", missing %s connections?", pinName); |
whismanoid | 0:93d4119d3f14 | 1349 | return false; |
whismanoid | 0:93d4119d3f14 | 1350 | } |
whismanoid | 0:93d4119d3f14 | 1351 | |
whismanoid | 0:93d4119d3f14 | 1352 | void MaximTinyTester::Wait_Output_Settling() |
whismanoid | 0:93d4119d3f14 | 1353 | { |
whismanoid | 0:93d4119d3f14 | 1354 | wait_ms(settle_time_msec); // delay |
whismanoid | 0:93d4119d3f14 | 1355 | } |
whismanoid | 0:93d4119d3f14 | 1356 | |
whismanoid | 0:93d4119d3f14 | 1357 | |
whismanoid | 0:93d4119d3f14 | 1358 | // End of file |