Closed
Description
What kind of issue is this? PlatformIO Core
Configuration
Operating system: Ubuntu 21.10
PlatformIO Version: PlatformIO Core, version 6.0.1
Description of problem
The command pio test -c some_file.ini
works for esp32 boards, but not on esp8266 boards.
Steps to Reproduce
- create a file named
custom.ini
and fill it with a esp32 config:
[env]
framework = arduino
platform = espressif32
board = esp32dev
[env:pins]
test_filter = test_pins
- build the test:
pio test -c custom.ini --without-uploading --without-testing -v
: the build works as expected. - now edit the
custom.ini
file with a esp8266 config:
[env]
framework = arduino
platform = espressif8266
board = esp01
[env:pins]
test_filter = test_pins
- build the test:
pio test -c custom.ini --without-uploading --without-testing -v
: now the build fails with this error:
Actual Results
Processing test_pins in pins environment
-------------------------------------------------------------------------------------------------------------------------------
Building...
TypeError: expected str, bytes or os.PathLike object, not NoneType:
File ".../.venv/lib/python3.9/site-packages/platformio/builder/main.py", line 184:
env.SConscript("$BUILD_SCRIPT")
File "/home/roipoussiere/.platformio/packages/tool-scons/scons-local-4.3.0/SCons/Script/SConscript.py", line 597:
return _SConscript(self.fs, *files, **subst_kw)
File "/home/roipoussiere/.platformio/packages/tool-scons/scons-local-4.3.0/SCons/Script/SConscript.py", line 285:
exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
File "/home/roipoussiere/.platformio/platforms/espressif8266/builder/main.py", line 237:
target_elf = env.BuildProgram()
File "/home/roipoussiere/.platformio/packages/tool-scons/scons-local-4.3.0/SCons/Util.py", line 742:
return self.method(*nargs, **kwargs)
File ".../.venv/lib/python3.9/site-packages/platformio/builder/tools/platformio.py", line 63:
env.ProcessProgramDeps()
File "/home/roipoussiere/.platformio/packages/tool-scons/scons-local-4.3.0/SCons/Util.py", line 742:
return self.method(*nargs, **kwargs)
File ".../.venv/lib/python3.9/site-packages/platformio/builder/tools/platformio.py", line 126:
env.BuildFrameworks(env.get("PIOFRAMEWORK"))
File "/home/roipoussiere/.platformio/packages/tool-scons/scons-local-4.3.0/SCons/Util.py", line 742:
return self.method(*nargs, **kwargs)
File ".../.venv/lib/python3.9/site-packages/platformio/builder/tools/platformio.py", line 341:
SConscript(env.GetFrameworkScript(name), exports="env")
File "/home/roipoussiere/.platformio/packages/tool-scons/scons-local-4.3.0/SCons/Script/SConscript.py", line 660:
return method(*args, **kw)
File "/home/roipoussiere/.platformio/packages/tool-scons/scons-local-4.3.0/SCons/Script/SConscript.py", line 597:
return _SConscript(self.fs, *files, **subst_kw)
File "/home/roipoussiere/.platformio/packages/tool-scons/scons-local-4.3.0/SCons/Script/SConscript.py", line 285:
exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
File "/home/roipoussiere/.platformio/platforms/espressif8266/builder/frameworks/arduino.py", line 31:
SConscript(
File "/home/roipoussiere/.platformio/packages/tool-scons/scons-local-4.3.0/SCons/Script/SConscript.py", line 660:
return method(*args, **kw)
File "/home/roipoussiere/.platformio/packages/tool-scons/scons-local-4.3.0/SCons/Script/SConscript.py", line 597:
return _SConscript(self.fs, *files, **subst_kw)
File "/home/roipoussiere/.platformio/packages/tool-scons/scons-local-4.3.0/SCons/Script/SConscript.py", line 285:
exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
File "/home/roipoussiere/.platformio/packages/framework-arduinoespressif8266/tools/platformio-build.py", line 132:
join(platform.get_package_dir("toolchain-xtensa"), "include")
File "/usr/lib/python3.9/posixpath.py", line 76:
a = os.fspath(a)
Building stage has failed, see errors above. Use `pio test -vvv` option to enable verbose output.
Expected Results
The test command should be functional whatever the target board.
If problems with PlatformIO Build System:
The content of platformio.ini
: see above
Source file to reproduce issue:
It seems that the source file doesn't matter, but here is a minimal test file:
#include <unity.h>
void test_pass() {
TEST_PASS();
}
void setup() {
delay(2000); // wait until the test runner establishes serial connection
UNITY_BEGIN();
RUN_TEST(test_pass);
UNITY_END();
}
void loop() {}
void setUp() {}
void tearDown() {}