From a3ff6d53c48c822c461d8235a567b4d6ebcec987 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20St=C3=B6neberg?= Date: Tue, 26 Sep 2023 15:31:37 +0200 Subject: [PATCH] added `-Werror` to pytest calls and fixed reported warnings (#5483) --- .github/workflows/CI-unixish.yml | 4 ++-- .github/workflows/CI-windows.yml | 14 +++++++------- .github/workflows/scriptcheck.yml | 17 +++++++++++++---- addons/misra.py | 14 +++++++++----- addons/test/util.py | 6 ++++-- 5 files changed, 35 insertions(+), 20 deletions(-) diff --git a/.github/workflows/CI-unixish.yml b/.github/workflows/CI-unixish.yml index 5e6a1f134..1177c9849 100644 --- a/.github/workflows/CI-unixish.yml +++ b/.github/workflows/CI-unixish.yml @@ -366,11 +366,11 @@ jobs: - name: Run test/cli run: | cd test/cli - python3 -m pytest --strict -vv test-*.py + python3 -m pytest -Werror --strict-markers -vv test-*.py cd ../../.. ln -s cppcheck 'cpp check' cd 'cpp check/test/cli' - python3 -m pytest --strict -vv test-*.py + python3 -m pytest -Werror --strict-markers -vv test-*.py - name: Run cfg tests if: matrix.os != 'ubuntu-22.04' diff --git a/.github/workflows/CI-windows.yml b/.github/workflows/CI-windows.yml index 277403b8a..e1ae7fc13 100644 --- a/.github/workflows/CI-windows.yml +++ b/.github/workflows/CI-windows.yml @@ -168,13 +168,13 @@ jobs: copy .\bin\cppcheck.exe .\cppcheck.exe || exit /b !errorlevel! copy .\bin\cppcheck-core.dll .\cppcheck-core.dll || exit /b !errorlevel! cd test/cli || exit /b !errorlevel! - :: python -m pytest --strict -vv --suppress-no-test-exit-code test-clang-import.py || exit /b !errorlevel! - python -m pytest --strict -vv test-helloworld.py || exit /b !errorlevel! - python -m pytest --strict -vv test-inline-suppress.py || exit /b !errorlevel! - python -m pytest --strict -vv test-more-projects.py || exit /b !errorlevel! - python -m pytest --strict -vv test-other.py || exit /b !errorlevel! - python -m pytest --strict -vv test-proj2.py || exit /b !errorlevel! - python -m pytest --strict -vv test-suppress-syntaxError.py || exit /b !errorlevel! + :: python -m pytest -Werror --strict-markers -vv --suppress-no-test-exit-code test-clang-import.py || exit /b !errorlevel! + python -m pytest -Werror --strict-markers -vv test-helloworld.py || exit /b !errorlevel! + python -m pytest -Werror --strict-markers -vv test-inline-suppress.py || exit /b !errorlevel! + python -m pytest -Werror --strict-markers -vv test-more-projects.py || exit /b !errorlevel! + python -m pytest -Werror --strict-markers -vv test-other.py || exit /b !errorlevel! + python -m pytest -Werror --strict-markers -vv test-proj2.py || exit /b !errorlevel! + python -m pytest -Werror --strict-markers -vv test-suppress-syntaxError.py || exit /b !errorlevel! - name: Test addons if: matrix.config == 'release' diff --git a/.github/workflows/scriptcheck.yml b/.github/workflows/scriptcheck.yml index 89992e5ec..caef97642 100644 --- a/.github/workflows/scriptcheck.yml +++ b/.github/workflows/scriptcheck.yml @@ -135,9 +135,18 @@ jobs: run: | python tools/test_matchcompiler.py + # we cannot specify -Werror since xml/etree/ElementTree.py in Python 3.9/3.10 contains an unclosed file - name: test addons + if: matrix.python-version == '3.9' || matrix.python-version == '3.10' run: | - python -m pytest --strict -vv addons/test/test-*.py + python -m pytest --strict-markers -vv addons/test/test-*.py + env: + PYTHONPATH: ./addons + + - name: test addons + if: matrix.python-version != '3.9' && matrix.python-version != '3.10' + run: | + python -m pytest -Werror --strict-markers -vv addons/test/test-*.py env: PYTHONPATH: ./addons @@ -149,21 +158,21 @@ jobs: - name: test reduce run: | - python -m pytest --strict -vv tools/test_reduce.py + python -m pytest -Werror --strict-markers -vv tools/test_reduce.py env: PYTHONPATH: ./tools - name: test donate_cpu_lib if: matrix.python-version != '2.7' run: | - python -m pytest --strict -vv tools/test_donate_cpu_lib.py + python -m pytest -Werror --strict-markers -vv tools/test_donate_cpu_lib.py env: PYTHONPATH: ./tools - name: test donate_cpu_server if: matrix.python-version != '2.7' run: | - python -m pytest --strict -vv tools/test_donate_cpu_server.py + python -m pytest -Werror --strict-markers -vv tools/test_donate_cpu_server.py env: PYTHONPATH: ./tools diff --git a/addons/misra.py b/addons/misra.py index 55de43d48..ed504b6df 100755 --- a/addons/misra.py +++ b/addons/misra.py @@ -1106,11 +1106,12 @@ def getAddonRules(): """Returns dict of MISRA rules handled by this addon.""" addon_rules = [] compiled = re.compile(r'.*def[ ]+misra_([0-9]+)_([0-9]+)[(].*') - for line in open(__file__): - res = compiled.match(line) - if res is None: - continue - addon_rules.append(res.group(1) + '.' + res.group(2)) + with open(__file__) as f: + for line in f: + res = compiled.match(line) + if res is None: + continue + addon_rules.append(res.group(1) + '.' + res.group(2)) return addon_rules @@ -4155,6 +4156,7 @@ class MisraChecker: file_stream.readlines() file_stream.seek(0) except UnicodeDecodeError: + file_stream.close() file_stream = None else: break @@ -4234,6 +4236,8 @@ class MisraChecker: self.ruleTexts[rule.num] = rule expect_more = True + file_stream.close() + def verifyRuleTexts(self): """Prints rule numbers without rule text.""" rule_texts_rules = [] diff --git a/addons/test/util.py b/addons/test/util.py index 9413a2d0c..dda3655db 100644 --- a/addons/test/util.py +++ b/addons/test/util.py @@ -25,11 +25,13 @@ def dump_create(fpath, *argv): p.communicate() if p.returncode != 0: raise OSError("cppcheck returns error code: %d" % p.returncode) - subprocess.Popen(["sync"]) + p = subprocess.Popen(["sync"]) + p.communicate() def dump_remove(fpath): - subprocess.Popen(["rm", "-f", fpath + ".dump"]) + p = subprocess.Popen(["rm", "-f", fpath + ".dump"]) + p.communicate() def convert_json_output(raw_json_strings):