From f4beb4996d27f2cdaf4f0a63e7dc044bf17decce Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Wed, 25 Sep 2019 11:10:37 +0200 Subject: [PATCH] test: Remove python dead code linter Primarily I'd like to remove this because it is very imprecise, due to Python's dynamic nature, giving it a large list of false positives that need to be listed as exceptions. See for example #16906. It's also a frequent source of complaints. I'm doubtful of the usefulness of checking for dead code in a linter in the first place. Having some dead code in the test framework for a while is not a disaster. --- ci/lint/04_install.sh | 1 - test/lint/lint-python-dead-code-whitelist | 46 ----------------------- test/lint/lint-python-dead-code.sh | 23 ------------ 3 files changed, 70 deletions(-) delete mode 100644 test/lint/lint-python-dead-code-whitelist delete mode 100755 test/lint/lint-python-dead-code.sh diff --git a/ci/lint/04_install.sh b/ci/lint/04_install.sh index 6c3019a1a..12c3bfce4 100755 --- a/ci/lint/04_install.sh +++ b/ci/lint/04_install.sh @@ -8,7 +8,6 @@ export LC_ALL=C travis_retry pip3 install codespell==1.15.0 travis_retry pip3 install flake8==3.7.8 -travis_retry pip3 install vulture==1.0 SHELLCHECK_VERSION=v0.6.0 curl -s "https://storage.googleapis.com/shellcheck/shellcheck-${SHELLCHECK_VERSION}.linux.x86_64.tar.xz" | tar --xz -xf - --directory /tmp/ diff --git a/test/lint/lint-python-dead-code-whitelist b/test/lint/lint-python-dead-code-whitelist deleted file mode 100644 index 33bb7b44f..000000000 --- a/test/lint/lint-python-dead-code-whitelist +++ /dev/null @@ -1,46 +0,0 @@ -BadInputOutpointIndex # unused class (test/functional/data/invalid_txs.py) -_.carbon_path # unused attribute (contrib/macdeploy/custom_dsstore.py) -connection_lost # unused function (test/functional/test_framework/mininode.py) -connection_made # unused function (test/functional/test_framework/mininode.py) -_.converter # unused attribute (test/functional/test_framework/test_framework.py) -_.daemon # unused attribute (test/functional/test_framework/socks5.py) -data_received # unused function (test/functional/test_framework/mininode.py) -DuplicateInput # unused class (test/functional/data/invalid_txs.py) -DisabledOpcodeTemplates # unused class (test/functional/data/invalid_txs.py) -_.filename # unused attribute (contrib/macdeploy/custom_dsstore.py) -InvalidOPIFConstruction # unused class (test/functional/data/invalid_txs.py) -_.is_compressed # unused property (test/functional/test_framework/key.py) -legacy # unused variable (test/functional/test_framework/address.py) -msg_generic # unused class (test/functional/test_framework/messages.py) -NonexistentInput # unused class (test/functional/data/invalid_txs.py) -on_addr # unused function (test/functional/test_framework/mininode.py) -on_blocktxn # unused function (test/functional/test_framework/mininode.py) -on_block # unused function (test/functional/test_framework/mininode.py) -on_cmpctblock # unused function (test/functional/test_framework/mininode.py) -on_feefilter # unused function (test/functional/test_framework/mininode.py) -on_getaddr # unused function (test/functional/test_framework/mininode.py) -on_getblocks # unused function (test/functional/test_framework/mininode.py) -on_getblocktxn # unused function (test/functional/test_framework/mininode.py) -on_getdata # unused function (test/functional/test_framework/mininode.py) -on_getheaders # unused function (test/functional/test_framework/mininode.py) -on_headers # unused function (test/functional/test_framework/mininode.py) -on_inv # unused function (test/functional/test_framework/mininode.py) -on_mempool # unused function (test/functional/test_framework/mininode.py) -on_notfound # unused function (test/functional/test_framework/mininode.py) -on_ping # unused function (test/functional/test_framework/mininode.py) -on_pong # unused function (test/functional/test_framework/mininode.py) -on_reject # unused function (test/functional/test_framework/mininode.py) -on_sendcmpct # unused function (test/functional/test_framework/mininode.py) -on_sendheaders # unused function (test/functional/test_framework/mininode.py) -on_tx # unused function (test/functional/test_framework/mininode.py) -on_verack # unused function (test/functional/test_framework/mininode.py) -on_version # unused function (test/functional/test_framework/mininode.py) -_.optionxform # unused attribute (test/util/bitcoin-util-test.py) -OutputMissing # unused class (test/functional/data/invalid_txs.py) -_.posix_path # unused attribute (contrib/macdeploy/custom_dsstore.py) -profile_with_perf # unused function (test/functional/test_framework/test_node.py) -SizeTooSmall # unused class (test/functional/data/invalid_txs.py) -SpendNegative # unused class (test/functional/data/invalid_txs.py) -SpendTooMuch # unused class (test/functional/data/invalid_txs.py) -TooManySigops # unused class (test/functional/data/invalid_txs.py) -verify_ecdsa # unused function (test/functional/test_framework/key.py) diff --git a/test/lint/lint-python-dead-code.sh b/test/lint/lint-python-dead-code.sh deleted file mode 100755 index af37d393e..000000000 --- a/test/lint/lint-python-dead-code.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2018 The Bitcoin Core developers -# Distributed under the MIT software license, see the accompanying -# file COPYING or http://www.opensource.org/licenses/mit-license.php. -# -# Find dead Python code. - -export LC_ALL=C - -if ! command -v vulture > /dev/null; then - echo "Skipping Python dead code linting since vulture is not installed. Install by running \"pip3 install vulture\"" - exit 0 -fi - -VULTURE_SUPPRESSIONS=$(dirname "${BASH_SOURCE[0]}")/lint-python-dead-code-whitelist -if ! vulture \ - --min-confidence 60 \ - $(git rev-parse --show-toplevel) \ - "${VULTURE_SUPPRESSIONS}"; then - echo "False positives? Suppressions can be added to ${VULTURE_SUPPRESSIONS}" - exit 1 -fi