diff options
author | Ian Rogers <irogers@google.com> | 2025-03-11 14:36:25 -0700 |
---|---|---|
committer | Namhyung Kim <namhyung@kernel.org> | 2025-03-24 09:38:20 -0700 |
commit | 168910d0f9377b23b98404c88c13d4c51cdc5f15 (patch) | |
tree | 99fec98393fb26a36adcea9b28428346bc69ba67 /tools/perf/Build | |
parent | ef238109a3d20a2af474bf758c50072a09591f19 (diff) |
perf build: Add mypy build tests
If MYPY=1 is passed to the build then run mypy over python code in
perf. Unlike shellcheck this isn't default on as there are currently
too many errors.
An example of an error:
```
util/setup.py:8: error: Item "None" of "str | None" has no attribute "split" [union-attr]
util/setup.py:15: error: Item "None" of "IO[bytes] | None" has no attribute "readline" [union-attr]
util/setup.py:15: error: List item 0 has incompatible type "str | None"; expected "str | bytes | PathLike[str] | PathLike[bytes]" [list-item]
util/setup.py:16: error: Unsupported left operand type for + ("None") [operator]
util/setup.py:16: note: Left operand is of type "str | None"
util/setup.py:74: error: Unsupported left operand type for + ("None") [operator]
util/setup.py:74: note: Left operand is of type "str | None"
Found 5 errors in 1 file (checked 1 source file)
make[4]: *** [util/Build:430: util/setup.py.mypy_log] Error 1
```
Reviewed-by: James Clark <james.clark@linaro.org>
Signed-off-by: Ian Rogers <irogers@google.com>
Link: https://lore.kernel.org/r/20250311213628.569562-4-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Diffstat (limited to 'tools/perf/Build')
-rw-r--r-- | tools/perf/Build | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/tools/perf/Build b/tools/perf/Build index 5e385f370dd7..312914994c89 100644 --- a/tools/perf/Build +++ b/tools/perf/Build @@ -76,3 +76,16 @@ $(OUTPUT)%.shellcheck_log: % $(Q)$(call echo-cmd,test)shellcheck -s bash -a -S warning "$<" > $@ || (cat $@ && rm $@ && false) perf-y += $(SHELL_TEST_LOGS) + +ifdef MYPY + PY_TESTS := $(shell find python -type f -name '*.py') + MYPY_TEST_LOGS := $(PY_TESTS:python/%=python/%.mypy_log) +else + MYPY_TEST_LOGS := +endif + +$(OUTPUT)%.mypy_log: % + $(call rule_mkdir) + $(Q)$(call echo-cmd,test)mypy "$<" > $@ || (cat $@ && rm $@ && false) + +perf-y += $(MYPY_TEST_LOGS) |