aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/Build
diff options
context:
space:
mode:
authorIan Rogers <irogers@google.com>2025-03-11 14:36:25 -0700
committerNamhyung Kim <namhyung@kernel.org>2025-03-24 09:38:20 -0700
commit168910d0f9377b23b98404c88c13d4c51cdc5f15 (patch)
tree99fec98393fb26a36adcea9b28428346bc69ba67 /tools/perf/util/Build
parentperf build: Rename TEST_LOGS to SHELL_TEST_LOGS (diff)
downloadlinux-168910d0f9377b23b98404c88c13d4c51cdc5f15.tar.gz
linux-168910d0f9377b23b98404c88c13d4c51cdc5f15.zip
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/util/Build')
-rw-r--r--tools/perf/util/Build13
1 files changed, 13 insertions, 0 deletions
diff --git a/tools/perf/util/Build b/tools/perf/util/Build
index fd595454766e..583f425713eb 100644
--- a/tools/perf/util/Build
+++ b/tools/perf/util/Build
@@ -417,3 +417,16 @@ $(OUTPUT)%.shellcheck_log: %
$(Q)$(call echo-cmd,test)shellcheck -a -S warning "$<" > $@ || (cat $@ && rm $@ && false)
perf-util-y += $(SHELL_TEST_LOGS)
+
+PY_TESTS := setup.py
+ifdef MYPY
+ MYPY_TEST_LOGS := $(PY_TESTS:%=%.mypy_log)
+else
+ MYPY_TEST_LOGS :=
+endif
+
+$(OUTPUT)%.mypy_log: %
+ $(call rule_mkdir)
+ $(Q)$(call echo-cmd,test)mypy "$<" > $@ || (cat $@ && rm $@ && false)
+
+perf-util-y += $(MYPY_TEST_LOGS)