-
-
Notifications
You must be signed in to change notification settings - Fork 130
/
Copy pathtest_print.cpp
64 lines (49 loc) · 1.85 KB
/
test_print.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/*
* Copyright (c) 2020 Arduino. All rights reserved.
*/
/**************************************************************************************
* INCLUDE
**************************************************************************************/
#include <catch.hpp>
#include <string>
#include <Print.h>
/**************************************************************************************
* TEST HELPER
**************************************************************************************/
class PrintMock : public Print
{
public:
std::string _str;
virtual size_t write(uint8_t b)
{
_str.append(1, static_cast<char>(b));
return 1;
}
};
/**************************************************************************************
* TEST CODE
**************************************************************************************/
TEST_CASE ("Print::print(char)", "[Print-print-01]")
{
PrintMock mock;
mock.print('A');
REQUIRE(mock._str == "A");
}
TEST_CASE ("Print::print(int, int = DEC|HEX|OCT|BIN)", "[Print-print-02]")
{
PrintMock mock;
int const val = -1;
WHEN("DEC") { mock.print(val, DEC); REQUIRE(mock._str == "-1"); }
WHEN("HEX") { mock.print(val, HEX); REQUIRE(mock._str == "FFFFFFFFFFFFFFFF"); }
WHEN("OCT") { mock.print(val, OCT); REQUIRE(mock._str == "1777777777777777777777"); }
WHEN("BIN") { mock.print(val, BIN); REQUIRE(mock._str == "1111111111111111111111111111111111111111111111111111111111111111"); }
}
TEST_CASE ("Print::print(unsigned int, int = DEC|HEX|OCT|BIN)", "[Print-print-03]")
{
PrintMock mock;
unsigned int const val = 17;
WHEN("DEC") { mock.print(val, DEC); REQUIRE(mock._str == "17"); }
WHEN("HEX") { mock.print(val, HEX); REQUIRE(mock._str == "11"); }
WHEN("OCT") { mock.print(val, OCT); REQUIRE(mock._str == "21"); }
WHEN("BIN") { mock.print(val, BIN); REQUIRE(mock._str == "10001"); }
}