I work on Linux and I got an error about a missing `pins_arduino.h`:
```
fatal error: pins_arduino.h: No such file or directory
```
As it turns out, the reason for this is that the directory name under Linux is case-sensitive while it is lowercase-only in the variants file.
Initial batch of host testing mocks and some filesystem tests
- CATCH unit testing framework
- some mocks
- filesystem tests
- test coverage calculation (gcov)
- codecov.io integration
- add tools/build.py — a wrapper around arduino-builder
- use arduino-builder instead of full IDE to build sketches (reduces build time from 23 minutes to 16 minutes)
Changes:
5b4be7d273 Reserve 16k fragment buffer only when it is actually required.
b33ef68e6a Fix handshake status not being set if increase_bm_data_size fails
If it fails due to a malloc somewhere in bigint.c, we will still crash (although with a less obvious crash message). If it fails in increase_bm_data_size, axTLS will handle this and report that connection has been aborted. This error will be passed on to the user, so that an application can recover and attempt to reconnect.
Changelog:
324c2fdade Terminate connection if increase_bm_data_size fails
96fbb39f21 Update README.md
c18bb56e61 Add travis CI
9eaeca3a03 Postpone freeing of X509 context to the first data exchange after handshake
28869ea94b Use free followed by malloc instead of realloc when increasing raw buffer
43a90bcf35 Merge pull request #8 from slaff/feature/lwipr-compat
66e1a5f423 Merge pull request #7 from slaff/feature/sni
1154d0a985 Changed the code to reserve bytes for hostname only if needed.
63da8991c2 Added SNI ( https://en.wikipedia.org/wiki/Server_Name_Indication ) support.
7c38865f66 Restructured the lwip raw comat code. Added replacements for the time functions on ESP8266.
885ff3e8f0 Merge pull request #6 from slaff/feature/lwip-raw
d78e7a0799 Initial version of axTLS integration with lwip raw tcp mode (http://lwip.wikia.com/wiki/Raw/TCP).
Print::printf would allocate 1460 bytes on the stack, which in some cases would overflow the stack. Additionally it didn't handle (rare) cases when vsnprintf needed a buffer longer than 1460 bytes. This change makes default stack-allocated buffer 64 bytes long, and checks the result returned by vsnprintf. If a buffer longer than 64 bytes is needed, it is allocated on the heap.
Calling String::reserve() causes a crash if String object was in invalidated state. Per the comment on the method's declaration in ESP_SSD1306.h, This method was supposed to recover invalidated strings. This change fixes the edge case bug in String::changeBuffer() which is the root cause of the crash exposed from String::reserve().
Following test code was used to reproduce the problem and also to validate the fix:
String result;
while(true){
char c = 'A';
result += c; // the loop will cause malloc() to fail at some point.
if (result.c_str()==0)
{
Serial.println("String INVALIDATED!!!!!");
result.reserve(0); // before fix, this would crash.
Serial.println("Trying to empty....");
result="";
Serial.println("Emptied!!!!");
break;
}
}