There is an simple project to understand how to run test for a project on RP2040-ETH board. Test file is very simple:
#include <Arduino.h>
#include <unity.h>
void tearDown(void) {}
int add(int a, int b)
{
return a + b;
}
void test_calculator_addition(void) {
TEST_ASSERT_EQUAL(32, add(25, 7));
}
void setup() {
delay(2000);
UNITY_BEGIN();
RUN_TEST(test_calculator_addition);
UNITY_END();
}
void loop() {
delay(1000);
Serial.println("Step");
}
If I try to run Test command, nothing happens
and there is a warning in verbose mode about diffrerent HWID than expected
![image](https://community.platformio.org/uploads/default/original/3X/6/b/6b2136b31df05b2cfa5c817fa03ec245ed00c6d4.png)
It seems uploading works fine but there are
no test results.
Am I doing something wrong?
ini file:
Thanks for idea!
It works if configuration is changed from board = pico
to board = rpipico.
Trying to understand what the difference is…
That’s weird…
board = pico
board_build.core = earlephilhower
should be equivalent to
board = rpipico
otherwise I’ve made a mistake. Need to double check.
Other RP Pico board with the same sympthoms.
W5500-EVB-Pico works fine but configuration:
[env:5500_evb_pico]
platform = raspberrypi
board = wiznet_5500_evb_pico
framework = arduino
test_framework = unity
test_build_src = yes
doesn’t run unit tests.
Verbose mode shows equal warning:
Current device has a different ID that system expects
Maybe there is some magic option to run tests in W5500-EVB-Pico case?
Then set monitor_port = COMxxx
accordingly and possibly delay after upload so that the referenced COM port has time to appear.
Monitor port is set propertly and delay after after upload was added. But it doesn’t help
That does pio devices
show after the test executable has been uploaded? (Or when a regular firmware that uses the USB serial is uploaded)
Still the same
code of extra_script.py
Import("env")
def after_upload(source, target, env):
print("Delay while uploading...")
import time
time.sleep(5)
print("Done!")
env.AddPostAction("upload", after_upload)
code of ini file
[env:5500_evb_pico]
platform = raspberrypi
board = wiznet_5500_evb_pico
framework = arduino
test_framework = unity
test_build_src = yes
extra_scripts = post:extra_script.py
new delay row inside tests
void setup()
{
delay(5000);
UNITY_BEGIN();
RUN_TEST(test_something);
UNITY_END();
}