platform neutral examples and manual cherry-pick merge of https://github.com/alissa-huskey/Arduino-Makefile/tree/test_fixes
This commit is contained in:
parent
185a1e9e35
commit
bf319c49b7
27 changed files with 90 additions and 51 deletions
|
@ -1,4 +1,5 @@
|
||||||
sudo: required
|
os: linux
|
||||||
|
dist: xenial
|
||||||
language: c
|
language: c
|
||||||
compiler:
|
compiler:
|
||||||
- gcc
|
- gcc
|
||||||
|
@ -9,3 +10,6 @@ addons:
|
||||||
packages:
|
packages:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "python3-pip"
|
- "python3-pip"
|
||||||
|
env:
|
||||||
|
global:
|
||||||
|
- ARDMK_DIR=$TRAVIS_BUILD_DIR
|
||||||
|
|
18
Common.mk
18
Common.mk
|
@ -48,20 +48,20 @@ $(call arduino_output,$(call ardmk_include) Configuration:)
|
||||||
|
|
||||||
ifeq ($(OS),Windows_NT)
|
ifeq ($(OS),Windows_NT)
|
||||||
CURRENT_OS = WINDOWS
|
CURRENT_OS = WINDOWS
|
||||||
GREP_CMD := grep
|
GREP_CMD = grep
|
||||||
else
|
else
|
||||||
UNAME_S := $(shell uname -s)
|
UNAME_S := $(shell uname -s)
|
||||||
ifeq ($(UNAME_S),Linux)
|
ifeq ($(UNAME_S),Linux)
|
||||||
CURRENT_OS = LINUX
|
CURRENT_OS = LINUX
|
||||||
GREP_CMD := grep
|
GREP_CMD = grep
|
||||||
endif
|
endif
|
||||||
ifeq ($(UNAME_S),Darwin)
|
ifeq ($(UNAME_S),Darwin)
|
||||||
CURRENT_OS = MAC
|
CURRENT_OS = MAC
|
||||||
ifeq (, $(shell which ggrep))
|
ifeq (, $(shell which ggrep))
|
||||||
echo $(info Using macOS BSD grep, please install GNU grep to avoid warnings)
|
echo $(info Using macOS BSD grep, please install GNU grep to avoid warnings)
|
||||||
GREP_CMD := grep
|
GREP_CMD = grep
|
||||||
else
|
else
|
||||||
GREP_CMD := ggrep
|
GREP_CMD = ggrep
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
@ -73,14 +73,18 @@ $(call show_config_variable,CURRENT_OS,[AUTODETECTED])
|
||||||
ifneq ($(TEST),)
|
ifneq ($(TEST),)
|
||||||
DEPENDENCIES_DIR = /var/tmp/Arduino-Makefile-testing-dependencies
|
DEPENDENCIES_DIR = /var/tmp/Arduino-Makefile-testing-dependencies
|
||||||
|
|
||||||
DEPENDENCIES_MPIDE_DIR = $(DEPENDENCIES_DIR)/mpide-0023-linux64-20130817-test
|
DEPENDENCIES_MPIDE_DIR := $(shell find $(DEPENDENCIES_DIR) -name 'mpide-0023-*' -type d -exec ls -dt {} + | head -n 1)
|
||||||
|
|
||||||
ifeq ($(MPIDE_DIR),)
|
ifeq ($(MPIDE_DIR),)
|
||||||
MPIDE_DIR = $(DEPENDENCIES_MPIDE_DIR)
|
MPIDE_DIR = $(DEPENDENCIES_MPIDE_DIR)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifndef ARDUINO_IDE_DIR
|
ifndef ARDUINO_IDE_DIR
|
||||||
ARDUINO_IDE_DIR := $(shell basename $(basename $(basename $(lastword $(wildcard $(DEPENDENCIES_DIR)/arduino*)))))
|
ifeq ($(CURRENT_OS),MAC)
|
||||||
# ARDUINO_IDE_DIR := arduino
|
ARDUINO_IDE_DIR = Arduino.app/Contents/Resources/Java
|
||||||
|
else
|
||||||
|
ARDUINO_IDE_DIR := $(shell basename $(basename $(basename $(lastword $(wildcard $(DEPENDENCIES_DIR)/arduino*)))))
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
DEPENDENCIES_ARDUINO_DIR = $(DEPENDENCIES_DIR)/$(ARDUINO_IDE_DIR)
|
DEPENDENCIES_ARDUINO_DIR = $(DEPENDENCIES_DIR)/$(ARDUINO_IDE_DIR)
|
||||||
ifeq ($(ARDUINO_DIR),)
|
ifeq ($(ARDUINO_DIR),)
|
||||||
|
|
2
Sam.mk
2
Sam.mk
|
@ -38,7 +38,7 @@ ifneq ($(TEST),)
|
||||||
ALTERNATE_CORE_PATH = $(DEPENDENCIES_DIR)/samd
|
ALTERNATE_CORE_PATH = $(DEPENDENCIES_DIR)/samd
|
||||||
CMSIS_DIR = $(DEPENDENCIES_DIR)/CMSIS/CMSIS
|
CMSIS_DIR = $(DEPENDENCIES_DIR)/CMSIS/CMSIS
|
||||||
CMSIS_ATMEL_DIR = $(DEPENDENCIES_DIR)/CMSIS-Atmel/CMSIS
|
CMSIS_ATMEL_DIR = $(DEPENDENCIES_DIR)/CMSIS-Atmel/CMSIS
|
||||||
ARM_TOOLS_DIR = $(basename $(basename $(firstword $(wildcard $(DEPENDENCIES_DIR)/gcc-arm-none-eabi*))))
|
ARM_TOOLS_DIR := $(basename $(basename $(firstword $(wildcard $(DEPENDENCIES_DIR)/gcc-arm-none-eabi*))))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifndef ARDUINO_PACKAGE_DIR
|
ifndef ARDUINO_PACKAGE_DIR
|
||||||
|
|
|
@ -54,6 +54,6 @@ BOARD_TAG = attiny85
|
||||||
# ------------------------------------------------------------------ #
|
# ------------------------------------------------------------------ #
|
||||||
|
|
||||||
# Path to the Arduino Makefile
|
# Path to the Arduino Makefile
|
||||||
include /usr/share/arduino/Arduino.mk
|
include $(ARDMK_DIR)/Arduino.mk
|
||||||
|
|
||||||
# !!! Important. You have to use 'make ispload' when using an ISP.
|
# !!! Important. You have to use 'make ispload' when using an ISP.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
BOARD_TAG = uno
|
BOARD_TAG = uno
|
||||||
ARDUINO_LIBS =
|
ARDUINO_LIBS =
|
||||||
|
|
||||||
include ../../Arduino.mk
|
include $(ARDMK_DIR)/Arduino.mk
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# Arduino Make file. Refer to https://github.com/sudar/Arduino-Makefile
|
# Arduino Make file. Refer to https://github.com/sudar/Arduino-Makefile
|
||||||
|
|
||||||
BOARD_TAG = uno
|
BOARD_TAG = uno
|
||||||
include ../../Arduino.mk
|
include $(ARDMK_DIR)/Arduino.mk
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ TOGGLE_ARCHIVE = build-$(BOARD_TAG)/libtoggle.a
|
||||||
CXXFLAGS += -IToggle
|
CXXFLAGS += -IToggle
|
||||||
OTHER_OBJS = Toggle/$(TOGGLE_ARCHIVE)
|
OTHER_OBJS = Toggle/$(TOGGLE_ARCHIVE)
|
||||||
|
|
||||||
include ../../Arduino.mk
|
include $(ARDMK_DIR)/Arduino.mk
|
||||||
|
|
||||||
Toggle/$(TOGGLE_ARCHIVE):
|
Toggle/$(TOGGLE_ARCHIVE):
|
||||||
$(MAKE) -C Toggle $(TOGGLE_ARCHIVE)
|
$(MAKE) -C Toggle $(TOGGLE_ARCHIVE)
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
# and archived into the build-$(BOARD_TAG)/libtoggle.a target.
|
# and archived into the build-$(BOARD_TAG)/libtoggle.a target.
|
||||||
|
|
||||||
include ../board.mk
|
include ../board.mk
|
||||||
include ../../../Arduino.mk
|
include $(ARDMK_DIR)/Arduino.mk
|
||||||
|
|
||||||
build-$(BOARD_TAG)/libtoggle.a: $(LOCAL_OBJS)
|
build-$(BOARD_TAG)/libtoggle.a: $(LOCAL_OBJS)
|
||||||
$(AR) rcs $@ $(LOCAL_OBJS)
|
$(AR) rcs $@ $(LOCAL_OBJS)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
BOARD_TAG = mega_pic32
|
BOARD_TAG = mega_pic32
|
||||||
ARDUINO_LIBS =
|
ARDUINO_LIBS =
|
||||||
|
|
||||||
include ../../chipKIT.mk
|
include $(ARDMK_DIR)/chipKIT.mk
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,6 @@ F_CPU = 8000000L
|
||||||
ISP_PROG = stk500v1
|
ISP_PROG = stk500v1
|
||||||
AVRDUDE_ISP_BAUDRATE = 19200
|
AVRDUDE_ISP_BAUDRATE = 19200
|
||||||
|
|
||||||
include ../../Arduino.mk
|
include $(ARDMK_DIR)/Arduino.mk
|
||||||
|
|
||||||
# !!! Important. You have to use make ispload to upload when using ISP programmer
|
# !!! Important. You have to use make ispload to upload when using ISP programmer
|
||||||
|
|
|
@ -16,7 +16,7 @@ AVRDUDE_CONF=/usr/local/etc/avrdude.conf
|
||||||
FORCE_MONITOR_PORT=true
|
FORCE_MONITOR_PORT=true
|
||||||
MONITOR_PORT=/dev/spidev0.0
|
MONITOR_PORT=/dev/spidev0.0
|
||||||
|
|
||||||
include ../../Arduino.mk
|
include $(ARDMK_DIR)/Arduino.mk
|
||||||
|
|
||||||
|
|
||||||
# Additional rules to use a remote Raspberry Pi programmer
|
# Additional rules to use a remote Raspberry Pi programmer
|
||||||
|
|
|
@ -4,4 +4,4 @@ ARDUINO_LIBS =
|
||||||
#MONITOR_PORT = /dev/ttyACM0
|
#MONITOR_PORT = /dev/ttyACM0
|
||||||
#OPENCMIDE_DIR = /where/you/installed/robotis_opencm
|
#OPENCMIDE_DIR = /where/you/installed/robotis_opencm
|
||||||
|
|
||||||
include ../../OpenCM.mk
|
include $(ARDMK_DIR)/OpenCM.mk
|
||||||
|
|
|
@ -5,4 +5,4 @@ ARDUINO_LIBS =
|
||||||
|
|
||||||
#MONITOR_PORT = /dev/ttyACM0
|
#MONITOR_PORT = /dev/ttyACM0
|
||||||
|
|
||||||
include ../../OpenCR.mk
|
include $(ARDMK_DIR)/OpenCR.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
BOARD_TAG = teensy31
|
BOARD_TAG = teensy31
|
||||||
ARDUINO_LIBS =
|
ARDUINO_LIBS =
|
||||||
|
|
||||||
include ../../Teensy.mk
|
include $(ARDMK_DIR)/Teensy.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
BOARD_TAG = uno
|
BOARD_TAG = uno
|
||||||
ARDUINO_LIBS =
|
ARDUINO_LIBS =
|
||||||
|
|
||||||
include ../../Arduino.mk
|
include $(ARDMK_DIR)/Arduino.mk
|
||||||
|
|
|
@ -16,4 +16,4 @@ ARCHITECTURE = sam
|
||||||
# Windows
|
# Windows
|
||||||
#ARDUINO_PACKAGE_DIR := "C:/Users/$(USER)/AppData/Local/Arduino15/packages"
|
#ARDUINO_PACKAGE_DIR := "C:/Users/$(USER)/AppData/Local/Arduino15/packages"
|
||||||
|
|
||||||
include ../../Sam.mk
|
include $(ARDMK_DIR)/Sam.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
BOARD_TAG = uno
|
BOARD_TAG = uno
|
||||||
ARDUINO_LIBS =
|
ARDUINO_LIBS =
|
||||||
|
|
||||||
include ../../Arduino.mk
|
include $(ARDMK_DIR)/Arduino.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
BOARD_TAG = uno
|
BOARD_TAG = uno
|
||||||
ARDUINO_LIBS = LiquidCrystal
|
ARDUINO_LIBS = LiquidCrystal
|
||||||
|
|
||||||
include ../../Arduino.mk
|
include $(ARDMK_DIR)/Arduino.mk
|
||||||
|
|
|
@ -21,4 +21,4 @@ BOARD_TAG = mzero_pro_bl_dbg
|
||||||
# Windows
|
# Windows
|
||||||
# ARDUINO_PACKAGE_DIR := "C:/Users/$(USER)/AppData/Local/Arduino15/packages"
|
# ARDUINO_PACKAGE_DIR := "C:/Users/$(USER)/AppData/Local/Arduino15/packages"
|
||||||
|
|
||||||
include ../../Sam.mk
|
include $(ARDMK_DIR)/Sam.mk
|
||||||
|
|
|
@ -2,4 +2,4 @@
|
||||||
|
|
||||||
BOARD_TAG = uno
|
BOARD_TAG = uno
|
||||||
|
|
||||||
include ../../Arduino.mk
|
include $(ARDMK_DIR)/Arduino.mk
|
||||||
|
|
|
@ -17,4 +17,4 @@ F_CPU = 16000000L
|
||||||
|
|
||||||
ARDUINO_LIBS = SoftwareSerial
|
ARDUINO_LIBS = SoftwareSerial
|
||||||
|
|
||||||
include /usr/share/arduino/Arduino.mk
|
include $(ARDMK_DIR)/Arduino.mk
|
||||||
|
|
|
@ -3,4 +3,4 @@
|
||||||
BOARD_TAG = uno
|
BOARD_TAG = uno
|
||||||
ARDUINO_LIBS = Ethernet SPI
|
ARDUINO_LIBS = Ethernet SPI
|
||||||
|
|
||||||
include ../../Arduino.mk
|
include $(ARDMK_DIR)/Arduino.mk
|
||||||
|
|
|
@ -27,4 +27,4 @@ BOARD_TAG = arduino_zero_native
|
||||||
# Windows
|
# Windows
|
||||||
#ARDUINO_PACKAGE_DIR := "C:/Users/$(USER)/AppData/Local/Arduino15/packages"
|
#ARDUINO_PACKAGE_DIR := "C:/Users/$(USER)/AppData/Local/Arduino15/packages"
|
||||||
|
|
||||||
include ../../Sam.mk
|
include $(ARDMK_DIR)/Sam.mk
|
||||||
|
|
|
@ -3,4 +3,4 @@
|
||||||
BOARD_TAG = uno
|
BOARD_TAG = uno
|
||||||
ARDUINO_LIBS = Wire
|
ARDUINO_LIBS = Wire
|
||||||
|
|
||||||
include ../../Arduino.mk
|
include $(ARDMK_DIR)/Arduino.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
BOARD_TAG = uno
|
BOARD_TAG = uno
|
||||||
ARDUINO_LIBS =
|
ARDUINO_LIBS =
|
||||||
|
|
||||||
include ../../Arduino.mk
|
include $(ARDMK_DIR)/Arduino.mk
|
||||||
|
|
|
@ -168,8 +168,6 @@ if [ -z $COMMON_SOURCED ]; then
|
||||||
if ! command -v pip3 >/dev/null 2>&1; then
|
if ! command -v pip3 >/dev/null 2>&1; then
|
||||||
echo "Installing Pip..."
|
echo "Installing Pip..."
|
||||||
_install "python3-pip"
|
_install "python3-pip"
|
||||||
|
|
||||||
$SUDO_CMD easy_install3 pip3
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
PIP_SUDO_CMD=
|
PIP_SUDO_CMD=
|
||||||
|
|
|
@ -1,9 +1,41 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
SCRIPTS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
TESTS_DIR=examples
|
TESTS_DIR=examples
|
||||||
|
export ARDMK_DIR="${ARDMK_DIR:-$SCRIPTS_DIR/../..}"
|
||||||
|
|
||||||
failures=()
|
failures=()
|
||||||
|
|
||||||
|
if [[ "$1" == "-q" ]]; then
|
||||||
|
QUIET=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
runtest() {
|
||||||
|
if [[ $QUIET ]]; then
|
||||||
|
make $* TEST=1 > /dev/null 2>&1
|
||||||
|
else
|
||||||
|
output=`make $* TEST=1`
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
run() {
|
||||||
|
if [[ $QUIET ]]; then
|
||||||
|
"$@" > /dev/null 2>&1
|
||||||
|
else
|
||||||
|
"$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
info() {
|
||||||
|
if [[ $QUIET ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
run pushd $SCRIPTS_DIR/../..
|
||||||
|
|
||||||
# These examples cannot be tested easily at the moment as they require
|
# These examples cannot be tested easily at the moment as they require
|
||||||
# alternate cores. The MakefileExample doesn't actually contain any source code
|
# alternate cores. The MakefileExample doesn't actually contain any source code
|
||||||
# to compile.
|
# to compile.
|
||||||
|
@ -22,46 +54,47 @@ do
|
||||||
done
|
done
|
||||||
|
|
||||||
if ! $example_is_testable; then
|
if ! $example_is_testable; then
|
||||||
echo "Skipping non-testable example $example..."
|
info "Skipping non-testable example $example..."
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
pushd $dir
|
run pushd $dir
|
||||||
echo "Compiling $example..."
|
info "Compiling $example..."
|
||||||
make_output=`make clean TEST=1`
|
runtest clean
|
||||||
make_output=`make TEST=1`
|
runtest
|
||||||
|
|
||||||
if [[ $? -ne 0 ]]; then
|
if [[ $? -ne 0 ]]; then
|
||||||
failures+=("$example")
|
failures+=("$example")
|
||||||
echo "Example $example failed"
|
info "Example $example failed"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
make_output=`make disasm TEST=1`
|
runtest disasm
|
||||||
if [[ $? -ne 0 ]]; then
|
if [[ $? -ne 0 ]]; then
|
||||||
failures+=("$example disasm")
|
failures+=("$example disasm")
|
||||||
echo "Example $example disasm failed"
|
info "Example $example disasm failed"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
make_output=`make generate_assembly TEST=1`
|
runtest generate_assembly
|
||||||
if [[ $? -ne 0 ]]; then
|
if [[ $? -ne 0 ]]; then
|
||||||
failures+=("$example generate_assembly")
|
failures+=("$example generate_assembly")
|
||||||
echo "Example $example generate_assembly failed"
|
info "Example $example generate_assembly failed"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
make_output=`make symbol_sizes TEST=1`
|
runtest symbol_sizes
|
||||||
if [[ $? -ne 0 ]]; then
|
if [[ $? -ne 0 ]]; then
|
||||||
failures+=("$example symbol_sizes")
|
failures+=("$example symbol_sizes")
|
||||||
echo "Example $example symbol_sizes failed"
|
info "Example $example symbol_sizes failed"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
popd
|
run popd
|
||||||
done
|
|
||||||
|
|
||||||
for failure in "${failures[@]}"; do
|
|
||||||
echo "Example $failure failed"
|
|
||||||
done
|
done
|
||||||
|
|
||||||
if [[ ${#failures[@]} -eq 0 ]]; then
|
if [[ ${#failures[@]} -eq 0 ]]; then
|
||||||
echo "All tests passed."
|
echo "All tests passed."
|
||||||
else
|
else
|
||||||
exit 1
|
for failure in "${failures[@]}"; do
|
||||||
|
echo "Example $failure failed"
|
||||||
|
done
|
||||||
|
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in a new issue