platformio/platformio-core

"pio check --json-output" may contain extra output of program stdout

Open

#4.029 aberto em 11 de ago. de 2021

Ver no GitHub
 (1 comment) (1 reaction) (1 assignee)Python (791 forks)batch import
help wantedstatic analysis

Métricas do repositório

Stars
 (7.329 stars)
Métricas de merge de PR
 (Mesclagem média 109d 16h) (5 fundiu PRs em 30d)

Description

What kind of issue is this?

  • [ x ] PlatformIO Core. If you’ve found a bug, please provide an information below.

You can erase any parts of this template not applicable to your Issue.


Configuration

Operating system: Win 10 x64

PlatformIO Version (platformio --version): 5.1.1

Description of problem

When running pio check --json-output > file.json, I expect file.json to contain only the JSON output of the analyzer. However, if some analyzer tools are not installed, pio will install them and print progress to stdout, which will end up in json file, breaking it completely. There does not seem to be a way to get only JSON.

E.g.:

D:\DATA\Documents\PlatformIO\Projects\rclight>pio check --json-output
Tool Manager: Installing platformio/tool-cppcheck @ ~1.230.0
Downloading  [####################################]  100%
Tool Manager: tool-cppcheck @ 1.230.0 has been installed!
[{"env": "stm32", "tool": "cppcheck", "duration": 50.67090845108032, "defects": [{"severity": "medium", "category": "warning", "message": "The function 'loop' is never used.", "file": "D:\\DATA\\Documents\\PlatformIO\\Projects\\rclight\\src\\main.cpp", "line": 76, "column": 0, "callstack": "[D:\\DATA\\Documents\\PlatformIO\\Projects\\rclight\\src\\main.cpp:76]", "id": "unusedFunction", "cwe": "561"}, {"severity": "low", "category": "style", "message": "The function 'setup' is never used.", "file": "D:\\DATA\\Documents\\PlatformIO\\Projects\\rclight\\src\\main.cpp", "line": 52, "column": 0, "callstack": "[D:\\DATA\\Documents\\PlatformIO\\Projects\\rclight\\src\\main.cpp:52]", "id": "unusedFunction", "cwe": "561"}], "succeeded": true, "stats": {"src": {"medium": 1, "low": 1}}}, {"env": "stm32", "tool": "clangtidy", "duration": 2.5736844539642334, "defects": [{"severity": "medium", "category": "warning", "message": "use of a signed integer operand with a binary bitwise operator ", "file": "D:\\DATA\\Documents\\PlatformIO\\Projects\\rclight\\src\\main.cpp", "line": 67, "column": 21, "callstack": null, "id": "hicpp-signed-bitwise", "cwe": null}, {"severity": "medium", "category": "warning", "message": "use of 
a signed integer operand with a binary bitwise operator ", "file": "D:\\DATA\\Documents\\PlatformIO\\Projects\\rclight\\src\\main.cpp", "line": 68, "column": 21, "callstack": null, "id": "hicpp-signed-bitwise", "cwe": null}, {"severity": "medium", "category": "warning", "message": "50 is a magic number; consider replacing it with a named constant ", "file": "D:\\DATA\\Documents\\PlatformIO\\Projects\\rclight\\src\\main.cpp", "line": 73, "column": 11, "callstack": null, "id": "cppcoreguidelines-avoid-magic-numbers", "cwe": null}, {"severity": "medium", "category": "warning", "message": "50 is a magic number; consider replacing it with a named constant ", "file": "D:\\DATA\\Documents\\PlatformIO\\Projects\\rclight\\src\\main.cpp", "line": 73, "column": 11, 
"callstack": null, "id": "readability-magic-numbers", "cwe": null}], "succeeded": true, "stats": {"src": {"medium": 4}}}]

Steps to Reproduce

  1. Ensure that you don't have all the tools to run analyzer (e.g. remove tool-cppcheck from pio packages)
  2. run pio check --json-output

Actual Results

JSON and downloading progress is printed to stdout

Expected Results

Only the JSON output should be printed

If problems with PlatformIO Build System:

The content of platformio.ini:

Example:


[platformio]
default_envs = stm32

[env]
src_build_flags =
    -Wall
    -Werror
check_tool = cppcheck, clangtidy

[env:stm32]
platform = ststm32
board = bluepill_f103c8
framework = arduino
monitor_speed = 115200
upload_protocol = jlink

Source file to reproduce issue:

// any code will do

Additional info

This might be the cause for https://github.com/platformio/platformio-core/issues/3790

Guia do colaborador