I’ve setup a custom test framework. But although I have a “test_custom_runner.py” script in the test folder, linking still fails because of multiple definitions of “Unity*”.
from platformio.public import UnityTestRunner
class CustomTestRunner(UnityTestRunner):
# Ignore "throwtheswitch/Unity" package
EXTRA_LIB_DEPS = None
# Do not add default Unity to the build process
def configure_build_env(self, env):
pass
platformio.ini
[env:nano33ble]
framework = arduino
platform = nordicnrf52
board = nano33ble
lib_deps =
arduino-libraries/ArduinoBLE@^1.3.6
andrealombardo/L298N @ ^2.0.3
sstaub/TickTwo @ ^4.4.0
https://github.com/JonHub/Filters
https://github.com/Dirk-/NanoBLEFlashPrefs
monitor_speed = 9600
test_framework = custom
Not reproducable. Building the test firmware works.
> pio test --without-uploading --without-testing -vv
Collected 1 tests (test_embedded)
Processing test_embedded in nano33ble environment
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Building...
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/nordicnrf52/nano33ble.html
PLATFORM: Nordic nRF52 (10.5.0) > Arduino Nano 33 BLE
HARDWARE: NRF52840 64MHz, 256KB RAM, 960KB Flash
DEBUG: Current (blackmagic) External (blackmagic, cmsis-dap, jlink)
PACKAGES:
- framework-arduino-mbed @ 4.1.3
- tool-sreccat @ 1.164.0 (1.64)
- toolchain-gccarmnoneeabi @ 1.70201.0 (7.2.1)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 42 compatible libraries
Scanning dependencies...
No dependencies
Building in test mode
Compiling .pio\build\nano33ble\test\test_embedded\test_dummy.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduinoVariant\variant.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduino\Interrupts.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduino\Serial.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduino\Tone.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduino\USB\PluggableUSBDevice.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduino\USB\USBCDC.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduino\USB\USBSerial.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduino\WMath.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduino\abi.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduino\api\CanMsg.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduino\api\CanMsgRingbuffer.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduino\api\Common.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduino\api\IPAddress.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduino\api\PluggableUSB.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduino\api\Print.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduino\api\Stream.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduino\api\String.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduino\arm_hal_random.c.o
Compiling .pio\build\nano33ble\FrameworkArduino\as_mbed_library\variant.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduino\itoa.c.o
Compiling .pio\build\nano33ble\FrameworkArduino\main.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduino\mbed\platform\cxxsupport\mstd_mutex.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduino\pinToIndex.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduino\random_seed.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduino\timer.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduino\wiring.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduino\wiring_analog.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduino\wiring_digital.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduino\wiring_pulse.cpp.o
Compiling .pio\build\nano33ble\FrameworkArduino\wiring_shift.cpp.o
Archiving .pio\build\nano33ble\libFrameworkArduinoVariant.a
Archiving .pio\build\nano33ble\libFrameworkArduino.a
Linking .pio\build\nano33ble\firmware.elf
Checking size .pio\build\nano33ble\firmware.elf
Building .pio\build\nano33ble\firmware.bin
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM: [== ] 16.5% (used 43224 bytes from 262144 bytes)
Flash: [= ] 8.4% (used 82420 bytes from 983040 bytes)
See repo
@maxgerhardt, thanks for your reply.
I cloned your repo and was able to build your test firmware.
I ran Winmerge to compare the contents of the projects and I noticed my project contained a subfolder “.pio/libdeps/nano33ble/Unity”.
After deleting that folder I was able to build my test firmware.