Skip to content

Commit 93fee9d

Browse files
committed
Add Makefile and run tests on Travis
1 parent 6246659 commit 93fee9d

File tree

2 files changed

+83
-0
lines changed

2 files changed

+83
-0
lines changed

.travis.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ os:
44
- linux
55

66
script:
7+
- set -e
8+
- pushd $TRAVIS_BUILD_DIR/tests/host
9+
- make
10+
- popd
711
- wget -O arduino.tar.xz https://www.arduino.cc/download.php?f=/arduino-nightly-linux64.tar.xz
812
- tar xf arduino.tar.xz
913
- mv arduino-nightly $HOME/arduino_ide

tests/host/Makefile

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
OBJECT_DIRECTORY := obj
2+
BINARY_DIRECTORY := bin
3+
OUTPUT_BINARY := $(BINARY_DIRECTORY)/host_tests
4+
CORE_PATH := ../../cores/esp8266
5+
6+
CORE_CPP_FILES := $(addprefix $(CORE_PATH)/,\
7+
StreamString.cpp \
8+
Stream.cpp \
9+
WString.cpp \
10+
Print.cpp \
11+
FS.cpp \
12+
spiffs_api.cpp \
13+
)
14+
15+
CORE_C_FILES := $(addprefix $(CORE_PATH)/,\
16+
core_esp8266_noniso.c \
17+
spiffs/spiffs_cache.c \
18+
spiffs/spiffs_check.c \
19+
spiffs/spiffs_gc.c \
20+
spiffs/spiffs_hydrogen.c \
21+
spiffs/spiffs_nucleus.c \
22+
)
23+
24+
MOCK_CPP_FILES := $(addprefix common/,\
25+
Arduino.cpp \
26+
spiffs_mock.cpp \
27+
WMath.cpp \
28+
)
29+
30+
INC_PATHS += $(addprefix -I, \
31+
common \
32+
$(CORE_PATH) \
33+
)
34+
35+
TEST_CPP_FILES := \
36+
fs/test_fs.cpp \
37+
38+
CXXFLAGS += -std=c++11 -Wall
39+
CFLAGS += -std=c99 -Wall
40+
41+
remduplicates = $(strip $(if $1,$(firstword $1) $(call remduplicates,$(filter-out $(firstword $1),$1))))
42+
43+
C_SOURCE_FILES = $(CORE_C_FILES)
44+
CPP_SOURCE_FILES = $(MOCK_CPP_FILES) $(CORE_CPP_FILES) $(TEST_CPP_FILES)
45+
C_SOURCE_FILE_NAMES = $(notdir $(C_SOURCE_FILES))
46+
C_PATHS = $(call remduplicates, $(dir $(C_SOURCE_FILES) ) )
47+
C_OBJECTS = $(addprefix $(OBJECT_DIRECTORY)/, $(C_SOURCE_FILE_NAMES:.c=.c.o) )
48+
49+
CPP_SOURCE_FILE_NAMES = $(notdir $(CPP_SOURCE_FILES))
50+
CPP_PATHS = $(call remduplicates, $(dir $(CPP_SOURCE_FILES) ))
51+
CPP_OBJECTS = $(addprefix $(OBJECT_DIRECTORY)/, $(CPP_SOURCE_FILE_NAMES:.cpp=.cpp.o) )
52+
53+
$(warning $(call remduplicates, $(dir $(CPP_SOURCE_FILES) )))
54+
vpath %.c $(C_PATHS)
55+
vpath %.cpp $(CPP_PATHS)
56+
57+
OBJECTS = $(C_OBJECTS) $(CPP_OBJECTS)
58+
59+
all: $(OUTPUT_BINARY) test
60+
61+
test: $(OUTPUT_BINARY)
62+
$(OUTPUT_BINARY)
63+
64+
$(OBJECT_DIRECTORY):
65+
mkdir -p $@
66+
67+
$(BINARY_DIRECTORY):
68+
mkdir -p $@
69+
70+
$(C_OBJECTS): $(OBJECT_DIRECTORY)/%.c.o: %.c
71+
$(CC) $(CFLAGS) $(INC_PATHS) -c -o $@ $<
72+
73+
$(CPP_OBJECTS): $(OBJECT_DIRECTORY)/%.cpp.o: %.cpp
74+
$(CXX) $(CXXFLAGS) $(INC_PATHS) -c -o $@ $<
75+
76+
77+
# Link
78+
$(OUTPUT_BINARY): $(BINARY_DIRECTORY) $(OBJECT_DIRECTORY) $(OBJECTS)
79+
$(CXX) $(LDFLAGS) $(OBJECTS) $(LIBS) -o $(OUTPUT_BINARY)

0 commit comments

Comments
 (0)