Skip to content

Commit 5a2d67b

Browse files
committed
new
1 parent ed94957 commit 5a2d67b

File tree

10 files changed

+181
-11
lines changed

10 files changed

+181
-11
lines changed

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,6 @@ test/CMakeFiles
3737
test/bin
3838
build
3939
build/.cmake
40+
test/DartConfiguration.tcl
41+
test/CTestTestfile.cmake
42+
*.cmake

cores/arduino/Arduino.h

+13
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,17 @@
55

66
#include "pins_arduino.h"
77

8+
#include <api/itoa.h>
9+
#include <api/deprecated-avr-comp/avr/dtostrf.h>
10+
#include <strings.h>
11+
12+
13+
#include "UART.h"
14+
15+
#define Serial _UART0_
16+
#define Serial1 _UART1_
17+
#define Serial2 _UART2_
18+
#define Serial3 _UART3_
19+
//#define Serial4 _UART4_
20+
821
#endif //__ARDUINO__H__

cores/arduino/UART.h

+9-9
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
#include <inttypes.h>
2727
#include "api/HardwareSerial.h"
2828
#include "pins_arduino.h"
29-
#include "include/StreamMock.h"
29+
#include "StreamMock.h"
3030

3131

3232
using namespace arduino;
@@ -186,20 +186,20 @@ class UartClass : public HardwareSerial
186186
UartClass* bound = NULL;
187187
};
188188

189-
#if defined(HWSERIAL0)
190-
extern UartClass Serial;
189+
#if SERIAL_HOWMANY > 0
190+
extern UartClass _UART0_;
191191
#define HAVE_HWSERIAL0
192192
#endif
193-
#if defined(HWSERIAL1)
194-
extern UartClass Serial1;
193+
#if SERIAL_HOWMANY > 1
194+
extern UartClass _UART1_;
195195
#define HAVE_HWSERIAL1
196196
#endif
197-
#if defined(HWSERIAL2)
198-
extern UartClass Serial2;
197+
#if SERIAL_HOWMANY > 2
198+
extern UartClass _UART2_;
199199
#define HAVE_HWSERIAL2
200200
#endif
201-
#if defined(HWSERIAL3)
202-
extern UartClass Serial3;
201+
#if SERIAL_HOWMANY > 3
202+
extern UartClass _UART3_;
203203
#define HAVE_HWSERIAL3
204204
#endif
205205

cores/arduino/UART0.cpp

+4-2
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,17 @@
22
#include "Arduino.h"
33
#include "UART.h"
44

5-
5+
#if SERIAL_HOWMANY > 0
66
volatile USART_t HWSERIAL_struct;
77

88

99
volatile uint8_t PIN_WIRE_HWSERIAL0_RX=2;
1010
volatile uint8_t PIN_WIRE_HWSERIAL0_TX =3;
1111
volatile uint8_t HWSERIAL0_DRE_VECTOR_NUM=4;
1212
volatile uint8_t HWSERIAL0_MUX=5;
13-
UartClass Serial(& HWSERIAL_struct,PIN_WIRE_HWSERIAL0_RX , PIN_WIRE_HWSERIAL0_TX, HWSERIAL0_DRE_VECTOR_NUM, HWSERIAL0_MUX);
13+
UartClass _UART0_(& HWSERIAL_struct,PIN_WIRE_HWSERIAL0_RX , PIN_WIRE_HWSERIAL0_TX, HWSERIAL0_DRE_VECTOR_NUM, HWSERIAL0_MUX);
1414
//UartClass Serial;
1515

1616
//UartClass(volatile USART_t *hwserial_module, uint8_t hwserial_rx_pin, uint8_t hwserial_tx_pin, uint8_t dre_vect_num, uint8_t uart_mux);
17+
18+
#endif

cores/arduino/UART1.cpp

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
2+
#include "Arduino.h"
3+
#include "UART.h"
4+
5+
#if SERIAL_HOWMANY > 1
6+
volatile USART_t HWSERIAL_struct;
7+
8+
9+
volatile uint8_t PIN_WIRE_HWSERIAL0_RX=2;
10+
volatile uint8_t PIN_WIRE_HWSERIAL0_TX =3;
11+
volatile uint8_t HWSERIAL0_DRE_VECTOR_NUM=4;
12+
volatile uint8_t HWSERIAL0_MUX=5;
13+
UartClass _UART1_(& HWSERIAL_struct,PIN_WIRE_HWSERIAL0_RX , PIN_WIRE_HWSERIAL0_TX, HWSERIAL0_DRE_VECTOR_NUM, HWSERIAL0_MUX);
14+
//UartClass Serial;
15+
16+
//UartClass(volatile USART_t *hwserial_module, uint8_t hwserial_rx_pin, uint8_t hwserial_tx_pin, uint8_t dre_vect_num, uint8_t uart_mux);
17+
18+
#endif

cores/arduino/UART2.cpp

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
2+
#include "Arduino.h"
3+
#include "UART.h"
4+
5+
#if SERIAL_HOWMANY > 2
6+
volatile USART_t HWSERIAL_struct;
7+
8+
9+
volatile uint8_t PIN_WIRE_HWSERIAL0_RX=2;
10+
volatile uint8_t PIN_WIRE_HWSERIAL0_TX =3;
11+
volatile uint8_t HWSERIAL0_DRE_VECTOR_NUM=4;
12+
volatile uint8_t HWSERIAL0_MUX=5;
13+
UartClass _UART2_(& HWSERIAL_struct,PIN_WIRE_HWSERIAL0_RX , PIN_WIRE_HWSERIAL0_TX, HWSERIAL0_DRE_VECTOR_NUM, HWSERIAL0_MUX);
14+
//UartClass Serial;
15+
16+
//UartClass(volatile USART_t *hwserial_module, uint8_t hwserial_rx_pin, uint8_t hwserial_tx_pin, uint8_t dre_vect_num, uint8_t uart_mux);
17+
18+
#endif

cores/arduino/UART3.cpp

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
2+
#include "Arduino.h"
3+
#include "UART.h"
4+
5+
#if SERIAL_HOWMANY > 3
6+
volatile USART_t HWSERIAL_struct;
7+
8+
9+
volatile uint8_t PIN_WIRE_HWSERIAL0_RX=2;
10+
volatile uint8_t PIN_WIRE_HWSERIAL0_TX =3;
11+
volatile uint8_t HWSERIAL0_DRE_VECTOR_NUM=4;
12+
volatile uint8_t HWSERIAL0_MUX=5;
13+
UartClass _UART3_(& HWSERIAL_struct,PIN_WIRE_HWSERIAL0_RX , PIN_WIRE_HWSERIAL0_TX, HWSERIAL0_DRE_VECTOR_NUM, HWSERIAL0_MUX);
14+
//UartClass Serial;
15+
16+
//UartClass(volatile USART_t *hwserial_module, uint8_t hwserial_rx_pin, uint8_t hwserial_tx_pin, uint8_t dre_vect_num, uint8_t uart_mux);
17+
18+
#endif

test/CMakeLists.txt

+4
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ include (CTest)
1111
##########################################################################
1212

1313
include_directories(../cores/arduino) #Path tho arduino-core
14+
include_directories(../variants/mock_v1) #Path tho arduino-core
15+
1416
include_directories(include)
1517
include_directories(external/catch/v2.13.9/include)
1618
set(arduinoCore_API ../../ArduinoCore-API )
@@ -43,6 +45,7 @@ set(TEST_SRCS
4345
src/Stream/test_readStringUntil.cpp
4446
src/Stream/test_setTimeout.cpp
4547

48+
src/Serial/test_Serial.cpp
4649

4750
)
4851

@@ -55,6 +58,7 @@ set(TEST_DUT_SRCS
5558
${arduinoCore_API}/api/Print.cpp
5659
${arduinoCore_API}/api/Common.cpp
5760

61+
../variants/mock_v1/variant.cpp
5862
)
5963

6064
##########################################################################

test/Makefile

+54
Original file line numberDiff line numberDiff line change
@@ -646,6 +646,30 @@ C_/Users/gustav.wiberg/Documents/GitHub/Arduino/ArduinoCore-mockMCU/cores/arduin
646646
$(MAKE) $(MAKESILENT) -f CMakeFiles\exmaple_test.dir\build.make CMakeFiles/exmaple_test.dir/C_/Users/gustav.wiberg/Documents/GitHub/Arduino/ArduinoCore-mockMCU/cores/arduino/itoa.cpp.s
647647
.PHONY : C_/Users/gustav.wiberg/Documents/GitHub/Arduino/ArduinoCore-mockMCU/cores/arduino/itoa.cpp.s
648648

649+
C_/Users/gustav.wiberg/Documents/GitHub/Arduino/ArduinoCore-mockMCU/variants/mock_v1/variant.obj: C_/Users/gustav.wiberg/Documents/GitHub/Arduino/ArduinoCore-mockMCU/variants/mock_v1/variant.cpp.obj
650+
.PHONY : C_/Users/gustav.wiberg/Documents/GitHub/Arduino/ArduinoCore-mockMCU/variants/mock_v1/variant.obj
651+
652+
# target to build an object file
653+
C_/Users/gustav.wiberg/Documents/GitHub/Arduino/ArduinoCore-mockMCU/variants/mock_v1/variant.cpp.obj:
654+
$(MAKE) $(MAKESILENT) -f CMakeFiles\exmaple_test.dir\build.make CMakeFiles/exmaple_test.dir/C_/Users/gustav.wiberg/Documents/GitHub/Arduino/ArduinoCore-mockMCU/variants/mock_v1/variant.cpp.obj
655+
.PHONY : C_/Users/gustav.wiberg/Documents/GitHub/Arduino/ArduinoCore-mockMCU/variants/mock_v1/variant.cpp.obj
656+
657+
C_/Users/gustav.wiberg/Documents/GitHub/Arduino/ArduinoCore-mockMCU/variants/mock_v1/variant.i: C_/Users/gustav.wiberg/Documents/GitHub/Arduino/ArduinoCore-mockMCU/variants/mock_v1/variant.cpp.i
658+
.PHONY : C_/Users/gustav.wiberg/Documents/GitHub/Arduino/ArduinoCore-mockMCU/variants/mock_v1/variant.i
659+
660+
# target to preprocess a source file
661+
C_/Users/gustav.wiberg/Documents/GitHub/Arduino/ArduinoCore-mockMCU/variants/mock_v1/variant.cpp.i:
662+
$(MAKE) $(MAKESILENT) -f CMakeFiles\exmaple_test.dir\build.make CMakeFiles/exmaple_test.dir/C_/Users/gustav.wiberg/Documents/GitHub/Arduino/ArduinoCore-mockMCU/variants/mock_v1/variant.cpp.i
663+
.PHONY : C_/Users/gustav.wiberg/Documents/GitHub/Arduino/ArduinoCore-mockMCU/variants/mock_v1/variant.cpp.i
664+
665+
C_/Users/gustav.wiberg/Documents/GitHub/Arduino/ArduinoCore-mockMCU/variants/mock_v1/variant.s: C_/Users/gustav.wiberg/Documents/GitHub/Arduino/ArduinoCore-mockMCU/variants/mock_v1/variant.cpp.s
666+
.PHONY : C_/Users/gustav.wiberg/Documents/GitHub/Arduino/ArduinoCore-mockMCU/variants/mock_v1/variant.s
667+
668+
# target to generate assembly for a file
669+
C_/Users/gustav.wiberg/Documents/GitHub/Arduino/ArduinoCore-mockMCU/variants/mock_v1/variant.cpp.s:
670+
$(MAKE) $(MAKESILENT) -f CMakeFiles\exmaple_test.dir\build.make CMakeFiles/exmaple_test.dir/C_/Users/gustav.wiberg/Documents/GitHub/Arduino/ArduinoCore-mockMCU/variants/mock_v1/variant.cpp.s
671+
.PHONY : C_/Users/gustav.wiberg/Documents/GitHub/Arduino/ArduinoCore-mockMCU/variants/mock_v1/variant.cpp.s
672+
649673
src/MillisFake.obj: src/MillisFake.cpp.obj
650674
.PHONY : src/MillisFake.obj
651675

@@ -694,6 +718,30 @@ src/PrintMock.cpp.s:
694718
$(MAKE) $(MAKESILENT) -f CMakeFiles\exmaple_test.dir\build.make CMakeFiles/exmaple_test.dir/src/PrintMock.cpp.s
695719
.PHONY : src/PrintMock.cpp.s
696720

721+
src/Serial/test_Serial.obj: src/Serial/test_Serial.cpp.obj
722+
.PHONY : src/Serial/test_Serial.obj
723+
724+
# target to build an object file
725+
src/Serial/test_Serial.cpp.obj:
726+
$(MAKE) $(MAKESILENT) -f CMakeFiles\exmaple_test.dir\build.make CMakeFiles/exmaple_test.dir/src/Serial/test_Serial.cpp.obj
727+
.PHONY : src/Serial/test_Serial.cpp.obj
728+
729+
src/Serial/test_Serial.i: src/Serial/test_Serial.cpp.i
730+
.PHONY : src/Serial/test_Serial.i
731+
732+
# target to preprocess a source file
733+
src/Serial/test_Serial.cpp.i:
734+
$(MAKE) $(MAKESILENT) -f CMakeFiles\exmaple_test.dir\build.make CMakeFiles/exmaple_test.dir/src/Serial/test_Serial.cpp.i
735+
.PHONY : src/Serial/test_Serial.cpp.i
736+
737+
src/Serial/test_Serial.s: src/Serial/test_Serial.cpp.s
738+
.PHONY : src/Serial/test_Serial.s
739+
740+
# target to generate assembly for a file
741+
src/Serial/test_Serial.cpp.s:
742+
$(MAKE) $(MAKESILENT) -f CMakeFiles\exmaple_test.dir\build.make CMakeFiles/exmaple_test.dir/src/Serial/test_Serial.cpp.s
743+
.PHONY : src/Serial/test_Serial.cpp.s
744+
697745
src/Stream/test_find.obj: src/Stream/test_find.cpp.obj
698746
.PHONY : src/Stream/test_find.obj
699747

@@ -1038,12 +1086,18 @@ help:
10381086
@echo ... C_/Users/gustav.wiberg/Documents/GitHub/Arduino/ArduinoCore-mockMCU/cores/arduino/itoa.obj
10391087
@echo ... C_/Users/gustav.wiberg/Documents/GitHub/Arduino/ArduinoCore-mockMCU/cores/arduino/itoa.i
10401088
@echo ... C_/Users/gustav.wiberg/Documents/GitHub/Arduino/ArduinoCore-mockMCU/cores/arduino/itoa.s
1089+
@echo ... C_/Users/gustav.wiberg/Documents/GitHub/Arduino/ArduinoCore-mockMCU/variants/mock_v1/variant.obj
1090+
@echo ... C_/Users/gustav.wiberg/Documents/GitHub/Arduino/ArduinoCore-mockMCU/variants/mock_v1/variant.i
1091+
@echo ... C_/Users/gustav.wiberg/Documents/GitHub/Arduino/ArduinoCore-mockMCU/variants/mock_v1/variant.s
10411092
@echo ... src/MillisFake.obj
10421093
@echo ... src/MillisFake.i
10431094
@echo ... src/MillisFake.s
10441095
@echo ... src/PrintMock.obj
10451096
@echo ... src/PrintMock.i
10461097
@echo ... src/PrintMock.s
1098+
@echo ... src/Serial/test_Serial.obj
1099+
@echo ... src/Serial/test_Serial.i
1100+
@echo ... src/Serial/test_Serial.s
10471101
@echo ... src/Stream/test_find.obj
10481102
@echo ... src/Stream/test_find.i
10491103
@echo ... src/Stream/test_find.s

test/src/Serial/test_Serial.cpp

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/*
2+
* Copyright (c) 2020 Arduino. All rights reserved.
3+
*
4+
* SPDX-License-Identifier: LGPL-2.1-or-later
5+
*/
6+
7+
/**************************************************************************************
8+
* INCLUDE
9+
**************************************************************************************/
10+
11+
#include <catch.hpp>
12+
13+
#include <Arduino.h>
14+
15+
/**************************************************************************************
16+
* TEST CODE
17+
**************************************************************************************/
18+
#include <StreamMock.h>
19+
20+
TEST_CASE ("Testing Serial", "[Stream-find-01]")
21+
{
22+
Serial.begin(9600);
23+
StreamMock mock;
24+
25+
WHEN ("'target' is contained in stream")
26+
{
27+
mock << "This is a test string";
28+
29+
REQUIRE(mock.find("test") == true);
30+
REQUIRE(mock.readString() == arduino::String(" string"));
31+
}
32+
WHEN ("'target' is not contained in stream")
33+
{
34+
mock << "This is a string";
35+
36+
REQUIRE(mock.find("test") == false);
37+
REQUIRE(mock.readString() == arduino::String(""));
38+
}
39+
}
40+

0 commit comments

Comments
 (0)