@@ -1283,6 +1283,39 @@ The AUniter tools have been integrated into the [Jenkins](https://jenkins.io)
12831283continuous integration service. See details in
12841284[ Continuous Integration with Jenkins] ( https://github.com/bxparks/AUniter/tree/develop/jenkins ) .
12851285
1286+ ### UnixHostDuino
1287+
1288+ AUnit unit tests can often be compiled and executed natively on Linux or MacOS
1289+ machines using the [ UnixHostDuino] ( https://github.com/bxparks/UnixHostDuino )
1290+ library because most unit tests depend on just the ` Serial ` port (which
1291+ UnixHostDuino binds to ` stdout ` and ` stdin ` ).
1292+
1293+ The [ unit tests for AUnit itself] ( tests ) have all been upgraded to run
1294+ under UnixHostDuino. Here are a few tips when writing unit tests
1295+ to run under UnixHostDuino:
1296+
1297+ ** Delay(1000)**
1298+
1299+ For real Arduino boards, you get more reliable unit tests if you add a
1300+ ` delay(1000) ` at the start of the program. For UnixHostDuino, this is not
1301+ necessary, so I recommend calling this only on real Arduino boards, like this:
1302+ ``` C++
1303+ void setup () {
1304+ #ifdef ARDUINO
1305+ delay (1000); // Wait for stability on some boards, otherwise garage on Serial
1306+ #endif
1307+ ...
1308+ ```
1309+
1310+ **Exit() Status Code**
1311+
1312+ On real Arduino boards, the unit test (or any program for that matter) never
1313+ terminates. The `loop()` function executes forever. On Linux or MacOS using
1314+ UnixHostDuino, the test program will terminate at the end through the
1315+ `exit()` function. If the tests are successful (i.e. passing or skipped), it
1316+ will call `exit(0)`. If there are any failing tests (i.e. failed or timed out),
1317+ it will call `exit(1)`.
1318+
12861319## Tips
12871320
12881321Collection of useful tidbits.
@@ -1500,28 +1533,40 @@ See [CHANGELOG.md](CHANGELOG.md).
15001533
15011534## System Requirements
15021535
1536+ ### Tool Chain
1537+
15031538This library was developed and tested using:
1504- * [ Arduino IDE 1.8.5] ( https://www.arduino.cc/en/Main/Software )
1505- * [ Teensyduino 1.41] ( https://www.pjrc.com/teensy/td_download.html )
1506- * [ ESP8266 Arduino Core 2.4.1] ( https://arduino-esp8266.readthedocs.io/en/2.4.1/ )
1507- * [ arduino-esp32] ( https://github.com/espressif/arduino-esp32 )
1539+ * [Arduino IDE 1.8.9](https://www.arduino.cc/en/Main/Software)
1540+ * [Arduino AVR Boards 1.6.23](https://github.com/arduino/ArduinoCore-avr)
1541+ * [Arduino SAMD Boards 1.8.3](https://github.com/arduino/ArduinoCore-samd)
1542+ * [SparkFun AVR Boards 1.1.12](https://github.com/sparkfun/Arduino_Boards)
1543+ * [SparkFun SAMD Boards 1.6.2](https://github.com/sparkfun/Arduino_Boards)
1544+ * [ESP8266 Arduino 2.5.2](https://github.com/esp8266/Arduino)
1545+ * [ESP32 Arduino 1.0.2](https://github.com/espressif/arduino-esp32)
1546+ * [Teensydino 1.46](https://www.pjrc.com/teensy/td_download.html)
1547+
1548+ It should work with [PlatformIO](https://platformio.org/) but I have
1549+ not tested it extensively.
15081550
1509- I used MacOS 10.13.3 and Ubuntu 17.10 for most of my development.
1551+ ### Operating System
15101552
1511- The library is tested on the following hardware before each release:
1553+ I used MacOS 10.13.3 and Ubuntu 18.04 for most of my development.
1554+
1555+ ### Hardware
1556+
1557+ The library is tested extensively on the following boards:
15121558
15131559* Arduino Nano clone (16 MHz ATmega328P)
15141560* SparkFun Pro Micro clone (16 MHz ATmega32U4)
1515- * Teensy 3.2 (72 MHz ARM Cortex-M4)
15161561* NodeMCU 1.0 clone (ESP-12E module, 80 MHz ESP8266)
1562+ * WeMos D1 Mini clone (ESP-12E module, 80 MHz ESP8266)
15171563* ESP32 dev board (ESP-WROOM-32 module, 240 MHz dual core Tensilica LX6)
1564+ * SAMD21 M0 Mini board (Arduino Zero compatible, 48 MHz ARM Cortex-M0+)
15181565
15191566I will occasionally test on the following hardware as a sanity check:
15201567
1521- * Arduino UNO R3 clone (16 MHz ATmega328P)
1522- * Arduino Pro Mini clone (16 MHz ATmega328P)
1523- * Teensy LC (48 MHz ARM Cortex-M0+)
1524- * ESP-01 (ESP-01 module, 80 MHz ESP8266)
1568+ * Teensy 3.2 (72 MHz ARM Cortex-M4)
1569+ * Mini Mega 2560 (Arduino Mega 2560 compatible, 16 MHz ATmega2560)
15251570
15261571## License
15271572
0 commit comments