Skip to content

Commit c3e155c

Browse files
committed
Add test code for String operator +
1 parent e83ce70 commit c3e155c

File tree

2 files changed

+103
-0
lines changed

2 files changed

+103
-0
lines changed

Diff for: test/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ set(TEST_SRCS
4343
src/Ringbuffer/test_read_char.cpp
4444
src/Ringbuffer/test_store_char.cpp
4545
src/String/test_concat.cpp
46+
src/String/test_operators.cpp
4647
src/String/test_compareTo.cpp
4748
src/String/test_comparisonFunc.cpp
4849
src/String/test_characterAccessFunc.cpp

Diff for: test/src/String/test_operators.cpp

+102
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
/*
2+
* Copyright (c) 2020 Arduino. All rights reserved.
3+
*/
4+
5+
/**************************************************************************************
6+
* INCLUDE
7+
**************************************************************************************/
8+
9+
#include <catch.hpp>
10+
11+
#include <String.h>
12+
13+
/**************************************************************************************
14+
* TEST CODE
15+
**************************************************************************************/
16+
17+
TEST_CASE ("Testing String::operator + (const StringSumHelper, const String)", "[String-operator+-01]")
18+
{
19+
arduino::String str1("Hello ");
20+
arduino::String str2("Arduino");
21+
arduino::String str("Hello Arduino");
22+
REQUIRE(str.compareTo(str1+str2) == 0);
23+
}
24+
25+
TEST_CASE ("Testing String::operator + (const StringSumHelper, const char *)", "[String-operator+-02]")
26+
{
27+
arduino::String str1("Hello ");
28+
arduino::String str("Hello Arduino");
29+
REQUIRE(str.compareTo(str1+"Arduino") == 0);
30+
}
31+
32+
TEST_CASE ("Testing String::operator + (const StringSumHelper, char)", "[String-operator+-03]")
33+
{
34+
arduino::String str1("Hello");
35+
char ch='!';
36+
arduino::String str("Hello!");
37+
REQUIRE(str.compareTo(str1+ch) == 0);
38+
}
39+
40+
TEST_CASE ("Testing String::operator + (const StringSumHelper, unsigned char)", "[String-operator+-04]")
41+
{
42+
arduino::String str1("Hello ");
43+
unsigned char ch='A';
44+
arduino::String str("Hello 65"); /* ASCII['A'] = 65 */
45+
REQUIRE(str.compareTo(str1+ch) == 0);
46+
}
47+
48+
TEST_CASE ("Testing String::operator + (const StringSumHelper, int)", "[String-operator+-05]")
49+
{
50+
arduino::String str1("Hello ");
51+
arduino::String str("Hello 1");
52+
REQUIRE(str.compareTo(str1+1) == 0);
53+
}
54+
55+
TEST_CASE ("Testing String::operator + (unsigned int)", "[String-operator+-06]")
56+
{
57+
arduino::String str1("Hello ");
58+
unsigned int const num = 1;
59+
arduino::String str("Hello 1");
60+
REQUIRE(str.compareTo(str1+num) == 0);
61+
}
62+
63+
TEST_CASE ("Testing String::operator + (long)", "[String-operator+-07]")
64+
{
65+
arduino::String str1("Hello ");
66+
long const num = -1;
67+
arduino::String str("Hello -1");
68+
REQUIRE(str.compareTo(str1+num) == 0);
69+
}
70+
71+
TEST_CASE ("Testing String::operator + (unsigned long)", "[String-operator+-08]")
72+
{
73+
arduino::String str1("Hello ");
74+
unsigned long const num = 1;
75+
arduino::String str("Hello 1");
76+
REQUIRE(str.compareTo(str1+num) == 0);
77+
}
78+
79+
TEST_CASE ("Testing String::operator + (float)", "[String-operator+-09]")
80+
{
81+
arduino::String str1("Hello ");
82+
float const num = 1.234f;
83+
arduino::String str("Hello 1.23");
84+
REQUIRE(str.compareTo(str1+num) == 0);
85+
}
86+
87+
TEST_CASE ("Testing String::operator + (double)", "[String-operator+-10]")
88+
{
89+
arduino::String str1("Hello ");
90+
double const num = 5.678;
91+
arduino::String str("Hello 5.68");
92+
REQUIRE(str.compareTo(str1+num) == 0);
93+
}
94+
95+
TEST_CASE ("Testing String::operator + (const __FlashStringHelper *)", "[String-operator+-11]")
96+
{
97+
#undef F
98+
#define F(string_literal) (reinterpret_cast<const arduino::__FlashStringHelper *>(PSTR(string_literal)))
99+
arduino::String str1("Hello ");
100+
arduino::String str("Hello Arduino");
101+
REQUIRE(str.compareTo(str1+F("Arduino")) == 0);
102+
}

0 commit comments

Comments
 (0)