1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-06-16 11:21:18 +03:00

Test: fixing itoa implementation and clean-up of tests and test Makefile (#8531)

* Test: fixing itoa implementation, clean-up of tests and test runner

Update itoa to be the same as newlib, fixing edgecase of abs(INT_MIN)
Update WString.cpp:toString() integer conversions to use noniso funcs
Remove legacy gcc versions from Makefile and allow overrides
Don't fallback to c11 and c++11, source cannot support that

* CXX and CC are make predefined values, assuming ?= does not work (?)
This commit is contained in:
Max Prokhorov
2022-04-11 13:53:40 +03:00
committed by GitHub
parent 27827c8c6d
commit 520233f73e
7 changed files with 119 additions and 88 deletions

View File

@ -13,12 +13,14 @@
all copies or substantial portions of the Software.
*/
#include <catch.hpp>
#include <string.h>
#include <WString.h>
#include <limits.h>
#include <ArduinoCatch.hpp>
#include <StreamString.h>
#include <string>
#include <cstring>
#include <limits>
#include <climits>
TEST_CASE("String::move", "[core][String]")
{
const char buffer[] = "this string goes over the sso limit";
@ -117,8 +119,10 @@ TEST_CASE("String concantenation", "[core][String]")
str += "bcde";
str += str;
str += 987;
str += (int)INT_MAX;
str += (int)INT_MIN;
REQUIRE(str == "abcdeabcde987");
str += std::numeric_limits<int>::max();
REQUIRE(str == "abcdeabcde9872147483647");
str += std::numeric_limits<int>::min();
REQUIRE(str == "abcdeabcde9872147483647-2147483648");
str += (unsigned char)69;
REQUIRE(str == "abcdeabcde9872147483647-214748364869");