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
.travis.ymlCommon.mkSam.mk
examples
ATtinyBlink
AnalogInOutSerial
Blink
Blink3rdPartyLib
BlinkChipKIT
BlinkInAVRC
BlinkNetworkRPi
BlinkOpenCM
BlinkOpenCR
BlinkTeensy
BlinkWithoutDelay
DueBlink
Fade
HelloWorld
MZeroBlink
SerialPrint
TinySoftWareSerial
WebServer
ZeroBlink
master_reader
toneMelody
tests/script
|
@ -1,4 +1,5 @@
|
|||
sudo: required
|
||||
os: linux
|
||||
dist: xenial
|
||||
language: c
|
||||
compiler:
|
||||
- gcc
|
||||
|
@ -9,3 +10,6 @@ addons:
|
|||
packages:
|
||||
- "python3"
|
||||
- "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)
|
||||
CURRENT_OS = WINDOWS
|
||||
GREP_CMD := grep
|
||||
GREP_CMD = grep
|
||||
else
|
||||
UNAME_S := $(shell uname -s)
|
||||
ifeq ($(UNAME_S),Linux)
|
||||
CURRENT_OS = LINUX
|
||||
GREP_CMD := grep
|
||||
GREP_CMD = grep
|
||||
endif
|
||||
ifeq ($(UNAME_S),Darwin)
|
||||
CURRENT_OS = MAC
|
||||
ifeq (, $(shell which ggrep))
|
||||
echo $(info Using macOS BSD grep, please install GNU grep to avoid warnings)
|
||||
GREP_CMD := grep
|
||||
GREP_CMD = grep
|
||||
else
|
||||
GREP_CMD := ggrep
|
||||
GREP_CMD = ggrep
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
@ -73,14 +73,18 @@ $(call show_config_variable,CURRENT_OS,[AUTODETECTED])
|
|||
ifneq ($(TEST),)
|
||||
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),)
|
||||
MPIDE_DIR = $(DEPENDENCIES_MPIDE_DIR)
|
||||
endif
|
||||
|
||||
ifndef ARDUINO_IDE_DIR
|
||||
ARDUINO_IDE_DIR := $(shell basename $(basename $(basename $(lastword $(wildcard $(DEPENDENCIES_DIR)/arduino*)))))
|
||||
# ARDUINO_IDE_DIR := arduino
|
||||
ifeq ($(CURRENT_OS),MAC)
|
||||
ARDUINO_IDE_DIR = Arduino.app/Contents/Resources/Java
|
||||
else
|
||||
ARDUINO_IDE_DIR := $(shell basename $(basename $(basename $(lastword $(wildcard $(DEPENDENCIES_DIR)/arduino*)))))
|
||||
endif
|
||||
endif
|
||||
DEPENDENCIES_ARDUINO_DIR = $(DEPENDENCIES_DIR)/$(ARDUINO_IDE_DIR)
|
||||
ifeq ($(ARDUINO_DIR),)
|
||||
|
|
2
Sam.mk
2
Sam.mk
|
@ -38,7 +38,7 @@ ifneq ($(TEST),)
|
|||
ALTERNATE_CORE_PATH = $(DEPENDENCIES_DIR)/samd
|
||||
CMSIS_DIR = $(DEPENDENCIES_DIR)/CMSIS/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
|
||||
|
||||
ifndef ARDUINO_PACKAGE_DIR
|
||||
|
|
|
@ -54,6 +54,6 @@ BOARD_TAG = attiny85
|
|||
# ------------------------------------------------------------------ #
|
||||
|
||||
# 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.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
BOARD_TAG = uno
|
||||
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
|
||||
|
||||
BOARD_TAG = uno
|
||||
include ../../Arduino.mk
|
||||
include $(ARDMK_DIR)/Arduino.mk
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ TOGGLE_ARCHIVE = build-$(BOARD_TAG)/libtoggle.a
|
|||
CXXFLAGS += -IToggle
|
||||
OTHER_OBJS = Toggle/$(TOGGLE_ARCHIVE)
|
||||
|
||||
include ../../Arduino.mk
|
||||
include $(ARDMK_DIR)/Arduino.mk
|
||||
|
||||
Toggle/$(TOGGLE_ARCHIVE):
|
||||
$(MAKE) -C Toggle $(TOGGLE_ARCHIVE)
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
# and archived into the build-$(BOARD_TAG)/libtoggle.a target.
|
||||
|
||||
include ../board.mk
|
||||
include ../../../Arduino.mk
|
||||
include $(ARDMK_DIR)/Arduino.mk
|
||||
|
||||
build-$(BOARD_TAG)/libtoggle.a: $(LOCAL_OBJS)
|
||||
$(AR) rcs $@ $(LOCAL_OBJS)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
BOARD_TAG = mega_pic32
|
||||
ARDUINO_LIBS =
|
||||
|
||||
include ../../chipKIT.mk
|
||||
include $(ARDMK_DIR)/chipKIT.mk
|
||||
|
||||
|
|
|
@ -11,6 +11,6 @@ F_CPU = 8000000L
|
|||
ISP_PROG = stk500v1
|
||||
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
|
||||
|
|
|
@ -16,7 +16,7 @@ AVRDUDE_CONF=/usr/local/etc/avrdude.conf
|
|||
FORCE_MONITOR_PORT=true
|
||||
MONITOR_PORT=/dev/spidev0.0
|
||||
|
||||
include ../../Arduino.mk
|
||||
include $(ARDMK_DIR)/Arduino.mk
|
||||
|
||||
|
||||
# Additional rules to use a remote Raspberry Pi programmer
|
||||
|
|
|
@ -4,4 +4,4 @@ ARDUINO_LIBS =
|
|||
#MONITOR_PORT = /dev/ttyACM0
|
||||
#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
|
||||
|
||||
include ../../OpenCR.mk
|
||||
include $(ARDMK_DIR)/OpenCR.mk
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
BOARD_TAG = teensy31
|
||||
ARDUINO_LIBS =
|
||||
|
||||
include ../../Teensy.mk
|
||||
include $(ARDMK_DIR)/Teensy.mk
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
BOARD_TAG = uno
|
||||
ARDUINO_LIBS =
|
||||
|
||||
include ../../Arduino.mk
|
||||
include $(ARDMK_DIR)/Arduino.mk
|
||||
|
|
|
@ -16,4 +16,4 @@ ARCHITECTURE = sam
|
|||
# Windows
|
||||
#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
|
||||
ARDUINO_LIBS =
|
||||
|
||||
include ../../Arduino.mk
|
||||
include $(ARDMK_DIR)/Arduino.mk
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
BOARD_TAG = uno
|
||||
ARDUINO_LIBS = LiquidCrystal
|
||||
|
||||
include ../../Arduino.mk
|
||||
include $(ARDMK_DIR)/Arduino.mk
|
||||
|
|
|
@ -21,4 +21,4 @@ BOARD_TAG = mzero_pro_bl_dbg
|
|||
# Windows
|
||||
# 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
|
||||
|
||||
include ../../Arduino.mk
|
||||
include $(ARDMK_DIR)/Arduino.mk
|
||||
|
|
|
@ -17,4 +17,4 @@ F_CPU = 16000000L
|
|||
|
||||
ARDUINO_LIBS = SoftwareSerial
|
||||
|
||||
include /usr/share/arduino/Arduino.mk
|
||||
include $(ARDMK_DIR)/Arduino.mk
|
||||
|
|
|
@ -3,4 +3,4 @@
|
|||
BOARD_TAG = uno
|
||||
ARDUINO_LIBS = Ethernet SPI
|
||||
|
||||
include ../../Arduino.mk
|
||||
include $(ARDMK_DIR)/Arduino.mk
|
||||
|
|
|
@ -27,4 +27,4 @@ BOARD_TAG = arduino_zero_native
|
|||
# Windows
|
||||
#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
|
||||
ARDUINO_LIBS = Wire
|
||||
|
||||
include ../../Arduino.mk
|
||||
include $(ARDMK_DIR)/Arduino.mk
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
BOARD_TAG = uno
|
||||
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
|
||||
echo "Installing Pip..."
|
||||
_install "python3-pip"
|
||||
|
||||
$SUDO_CMD easy_install3 pip3
|
||||
fi
|
||||
|
||||
PIP_SUDO_CMD=
|
||||
|
|
|
@ -1,9 +1,41 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
SCRIPTS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
TESTS_DIR=examples
|
||||
export ARDMK_DIR="${ARDMK_DIR:-$SCRIPTS_DIR/../..}"
|
||||
|
||||
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
|
||||
# alternate cores. The MakefileExample doesn't actually contain any source code
|
||||
# to compile.
|
||||
|
@ -22,46 +54,47 @@ do
|
|||
done
|
||||
|
||||
if ! $example_is_testable; then
|
||||
echo "Skipping non-testable example $example..."
|
||||
info "Skipping non-testable example $example..."
|
||||
continue
|
||||
fi
|
||||
|
||||
pushd $dir
|
||||
echo "Compiling $example..."
|
||||
make_output=`make clean TEST=1`
|
||||
make_output=`make TEST=1`
|
||||
run pushd $dir
|
||||
info "Compiling $example..."
|
||||
runtest clean
|
||||
runtest
|
||||
|
||||
if [[ $? -ne 0 ]]; then
|
||||
failures+=("$example")
|
||||
echo "Example $example failed"
|
||||
info "Example $example failed"
|
||||
fi
|
||||
|
||||
make_output=`make disasm TEST=1`
|
||||
runtest disasm
|
||||
if [[ $? -ne 0 ]]; then
|
||||
failures+=("$example disasm")
|
||||
echo "Example $example disasm failed"
|
||||
info "Example $example disasm failed"
|
||||
fi
|
||||
|
||||
make_output=`make generate_assembly TEST=1`
|
||||
runtest generate_assembly
|
||||
if [[ $? -ne 0 ]]; then
|
||||
failures+=("$example generate_assembly")
|
||||
echo "Example $example generate_assembly failed"
|
||||
info "Example $example generate_assembly failed"
|
||||
fi
|
||||
|
||||
make_output=`make symbol_sizes TEST=1`
|
||||
runtest symbol_sizes
|
||||
if [[ $? -ne 0 ]]; then
|
||||
failures+=("$example symbol_sizes")
|
||||
echo "Example $example symbol_sizes failed"
|
||||
info "Example $example symbol_sizes failed"
|
||||
fi
|
||||
|
||||
popd
|
||||
done
|
||||
|
||||
for failure in "${failures[@]}"; do
|
||||
echo "Example $failure failed"
|
||||
run popd
|
||||
done
|
||||
|
||||
if [[ ${#failures[@]} -eq 0 ]]; then
|
||||
echo "All tests passed."
|
||||
else
|
||||
exit 1
|
||||
for failure in "${failures[@]}"; do
|
||||
echo "Example $failure failed"
|
||||
done
|
||||
|
||||
exit 1
|
||||
fi
|
||||
|
|
Loading…
Add table
Reference in a new issue