diff --git a/.travis.yml b/.travis.yml index af5553f3b7..a798c46bd1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -85,17 +85,17 @@ jobs: - python3-pip - shellcheck install: - - if [ "$TRAVIS_EVENT_TYPE" = "pull_request" ]; then travis_retry pip3 install flake8 --user; fi + - travis_retry pip3 install flake8 --user before_script: - git fetch --unshallow - - if [ "$TRAVIS_EVENT_TYPE" = "pull_request" ]; then contrib/devtools/commit-script-check.sh $TRAVIS_COMMIT_RANGE; fi - - contrib/devtools/git-subtree-check.sh src/crypto/ctaes - - contrib/devtools/git-subtree-check.sh src/secp256k1 - - contrib/devtools/git-subtree-check.sh src/univalue - - contrib/devtools/git-subtree-check.sh src/leveldb - - contrib/devtools/check-doc.py - - contrib/devtools/check-rpc-mappings.py . - - if [ "$TRAVIS_EVENT_TYPE" = "pull_request" ]; then contrib/devtools/lint-all.sh; fi + - if [ "$TRAVIS_EVENT_TYPE" = "pull_request" ]; then test/lint/commit-script-check.sh $TRAVIS_COMMIT_RANGE; fi + - test/lint/git-subtree-check.sh src/crypto/ctaes + - test/lint/git-subtree-check.sh src/secp256k1 + - test/lint/git-subtree-check.sh src/univalue + - test/lint/git-subtree-check.sh src/leveldb + - test/lint/check-doc.py + - test/lint/check-rpc-mappings.py . + - test/lint/lint-all.sh script: - if [ "$TRAVIS_REPO_SLUG" = "bitcoin/bitcoin" -a "$TRAVIS_PULL_REQUEST" = "false" ]; then while read LINE; do travis_retry gpg --keyserver hkp://subset.pool.sks-keyservers.net --recv-keys $LINE; done < contrib/verify-commits/trusted-keys; fi - if [ "$TRAVIS_REPO_SLUG" = "bitcoin/bitcoin" -a "$TRAVIS_EVENT_TYPE" = "cron" ]; then travis_wait 30 contrib/verify-commits/verify-commits.sh; fi diff --git a/contrib/devtools/README.md b/contrib/devtools/README.md index 7ac8aa39d3..690b8c7dc6 100644 --- a/contrib/devtools/README.md +++ b/contrib/devtools/README.md @@ -93,23 +93,6 @@ example: BUILDDIR=$PWD/build contrib/devtools/gen-manpages.sh ``` -git-subtree-check.sh -==================== - -Run this script from the root of the repository to verify that a subtree matches the contents of -the commit it claims to have been updated to. - -To use, make sure that you have fetched the upstream repository branch in which the subtree is -maintained: -* for `src/secp256k1`: https://github.com/bitcoin-core/secp256k1.git (branch master) -* for `src/leveldb`: https://github.com/bitcoin-core/leveldb.git (branch bitcoin-fork) -* for `src/univalue`: https://github.com/bitcoin-core/univalue.git (branch master) -* for `src/crypto/ctaes`: https://github.com/bitcoin-core/ctaes.git (branch master) - -Usage: `git-subtree-check.sh DIR (COMMIT)` - -`COMMIT` may be omitted, in which case `HEAD` is used. - github-merge.py =============== diff --git a/doc/developer-notes.md b/doc/developer-notes.md index 1f237b750e..9081cab911 100644 --- a/doc/developer-notes.md +++ b/doc/developer-notes.md @@ -647,7 +647,7 @@ Others are external projects without a tight relationship with our project. Cha be sent upstream but bugfixes may also be prudent to PR against Bitcoin Core so that they can be integrated quickly. Cosmetic changes should be purely taken upstream. -There is a tool in contrib/devtools/git-subtree-check.sh to check a subtree directory for consistency with +There is a tool in `test/lint/git-subtree-check.sh` to check a subtree directory for consistency with its upstream repository. Current subtrees include: @@ -778,7 +778,7 @@ To create a scripted-diff: - `-BEGIN VERIFY SCRIPT-` - `-END VERIFY SCRIPT-` -The scripted-diff is verified by the tool `contrib/devtools/commit-script-check.sh` +The scripted-diff is verified by the tool `test/lint/commit-script-check.sh` Commit [`bb81e173`](https://github.com/bitcoin/bitcoin/commit/bb81e173) is an example of a scripted-diff. diff --git a/test/functional/README.md b/test/functional/README.md index 21050cc2fa..fdd7c339c5 100644 --- a/test/functional/README.md +++ b/test/functional/README.md @@ -20,6 +20,8 @@ don't have test cases for. - Where possible, try to adhere to [PEP-8 guidelines](https://www.python.org/dev/peps/pep-0008/) - Use a python linter like flake8 before submitting PRs to catch common style nits (eg trailing whitespace, unused imports, etc) +- See [the python lint script](/test/lint/lint-python.sh) that checks for violations that + could lead to bugs and issues in the test code. - Avoid wildcard imports where possible - Use a module-level docstring to describe what the test is testing, and how it is testing it. diff --git a/test/lint/README.md b/test/lint/README.md new file mode 100644 index 0000000000..15974a3598 --- /dev/null +++ b/test/lint/README.md @@ -0,0 +1,29 @@ +This folder contains lint scripts. + +check-doc.py +============ +Check for missing documentation of command line options. + +commit-script-check.sh +====================== +Verification of [scripted diffs](/doc/developer-notes.md#scripted-diffs). + +git-subtree-check.sh +==================== +Run this script from the root of the repository to verify that a subtree matches the contents of +the commit it claims to have been updated to. + +To use, make sure that you have fetched the upstream repository branch in which the subtree is +maintained: +* for `src/secp256k1`: https://github.com/bitcoin-core/secp256k1.git (branch master) +* for `src/leveldb`: https://github.com/bitcoin-core/leveldb.git (branch bitcoin-fork) +* for `src/univalue`: https://github.com/bitcoin-core/univalue.git (branch master) +* for `src/crypto/ctaes`: https://github.com/bitcoin-core/ctaes.git (branch master) + +Usage: `git-subtree-check.sh DIR (COMMIT)` + +`COMMIT` may be omitted, in which case `HEAD` is used. + +lint-all.sh +=========== +Calls other scripts with the `lint-` prefix. diff --git a/contrib/devtools/check-doc.py b/test/lint/check-doc.py similarity index 100% rename from contrib/devtools/check-doc.py rename to test/lint/check-doc.py diff --git a/contrib/devtools/check-rpc-mappings.py b/test/lint/check-rpc-mappings.py similarity index 100% rename from contrib/devtools/check-rpc-mappings.py rename to test/lint/check-rpc-mappings.py diff --git a/contrib/devtools/commit-script-check.sh b/test/lint/commit-script-check.sh similarity index 100% rename from contrib/devtools/commit-script-check.sh rename to test/lint/commit-script-check.sh diff --git a/contrib/devtools/git-subtree-check.sh b/test/lint/git-subtree-check.sh similarity index 100% rename from contrib/devtools/git-subtree-check.sh rename to test/lint/git-subtree-check.sh diff --git a/contrib/devtools/lint-all.sh b/test/lint/lint-all.sh similarity index 100% rename from contrib/devtools/lint-all.sh rename to test/lint/lint-all.sh diff --git a/contrib/devtools/lint-include-guards.sh b/test/lint/lint-include-guards.sh similarity index 100% rename from contrib/devtools/lint-include-guards.sh rename to test/lint/lint-include-guards.sh diff --git a/contrib/devtools/lint-includes.sh b/test/lint/lint-includes.sh similarity index 100% rename from contrib/devtools/lint-includes.sh rename to test/lint/lint-includes.sh diff --git a/contrib/devtools/lint-logs.sh b/test/lint/lint-logs.sh similarity index 100% rename from contrib/devtools/lint-logs.sh rename to test/lint/lint-logs.sh diff --git a/contrib/devtools/lint-python-shebang.sh b/test/lint/lint-python-shebang.sh similarity index 100% rename from contrib/devtools/lint-python-shebang.sh rename to test/lint/lint-python-shebang.sh diff --git a/contrib/devtools/lint-python.sh b/test/lint/lint-python.sh similarity index 100% rename from contrib/devtools/lint-python.sh rename to test/lint/lint-python.sh diff --git a/contrib/devtools/lint-shell.sh b/test/lint/lint-shell.sh similarity index 100% rename from contrib/devtools/lint-shell.sh rename to test/lint/lint-shell.sh diff --git a/contrib/devtools/lint-tests.sh b/test/lint/lint-tests.sh similarity index 100% rename from contrib/devtools/lint-tests.sh rename to test/lint/lint-tests.sh diff --git a/contrib/devtools/lint-whitespace.sh b/test/lint/lint-whitespace.sh similarity index 100% rename from contrib/devtools/lint-whitespace.sh rename to test/lint/lint-whitespace.sh