Skip to content

pio test -c parameter is not working on esp8266 #4299

Closed
@njourdane

Description

@njourdane

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

  1. 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
  1. build the test: pio test -c custom.ini --without-uploading --without-testing -v: the build works as expected.
  2. now edit the custom.ini file with a esp8266 config:
[env]
framework = arduino
platform = espressif8266
board = esp01

[env:pins]
test_filter = test_pins
  1. 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() {}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions