History

tools/perf: Fix parallel-perf python script to replace new python syntax ":=" usage

perf test "perf script tests" fails as below in systems with python 3.6 File "/home/athira/linux/tools/perf/tests/shell/../../scripts/python/parallel-perf.py", line 442 if line := p.stdout.readline(): ^ SyntaxError: invalid syntax --- Cleaning up --- ---- end(-1) ---- 92: perf script tests: FAILED! This happens because ":=" is a new syntax that assigns values to variables as part of a larger expression. This is introduced from python 3.8 and hence fails in setup with python 3.6 Address this by splitting the large expression and check the value in two steps: Previous line: if line := p.stdout.readline(): Current change: line = p.stdout.readline() if line: With patch ./perf test "perf script tests" 93: perf script tests: Ok

Athira Rajeev committed 2 years ago

Commit 7d49ced1 parent b9241f11 file · +2 −1Browse files

Showing the changes to tools/perf/scripts/python (1 of 1 file). Show all

Unified · Split

tools/perf/scripts/python/parallel-perf.py+2−1
@@ -439,7 +439,8 @@ def ProcessCommandOutputLines(cmd, per_cpu, fn, *x): · 438 unmodified lines
439439 pat = re.compile(r"\s*\[[0-9]+\]")
440440 p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
441441 while True:
442− if line := p.stdout.readline():
442+ line = p.stdout.readline()
443+ if line:
443444 line = line.decode("utf-8")
444445 if pat.match(line):
445446 line = line.split()