bitcoin/test/lint
fanquake 66b08e7822
Merge bitcoin/bitcoin#27302: init: Error if ignored bitcoin.conf file is found
eefe56967b bugfix: Fix incorrect debug.log config file path (Ryan Ofsky)
3746f00be1 init: Error if ignored bitcoin.conf file is found (Ryan Ofsky)
398c3719b0 lint: Fix lint-format-strings false positives when format specifiers have argument positions (Ryan Ofsky)

Pull request description:

  Show an error on startup if a bitcoin datadir that is being used contains a `bitcoin.conf` file that is ignored. There are two cases where this could happen:

  - One case reported in [#27246 (comment)](https://github.com/bitcoin/bitcoin/issues/27246#issuecomment-1470006043) happens when a `bitcoin.conf` file in the default datadir (e.g. `$HOME/.bitcoin/bitcoin.conf`) has a `datadir=/path` line that sets different datadir containing a second `bitcoin.conf` file. Currently the second `bitcoin.conf` file is ignored with no warning.

  - Another way this could happen is if a `-conf=` command line argument points to a configuration file with a `datadir=/path` line and that path contains a `bitcoin.conf` file, which is currently ignored.

  This change only adds an error message and doesn't change anything about way settings are applied. It also doesn't trigger errors if there are redundant `-datadir` or `-conf` settings pointing at the same configuration file, only if they are pointing at different files and one file is being ignored.

ACKs for top commit:
  pinheadmz:
    re-ACK eefe56967b
  willcl-ark:
    re-ACK eefe56967b
  TheCharlatan:
    ACK eefe56967b

Tree-SHA512: 939a98a4b271b5263d64a2df3054c56fcde94784edf6f010d78693a371c38aa03138ae9cebb026b6164bbd898d8fd0845a61a454fd996e328fd7bcf51c580c2b
2023-05-26 13:33:42 +01:00
..
all-lint.py Use same Python executable for subprocesses as for all-lint.py 2023-01-03 23:23:07 +02:00
check-doc.py scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
commit-script-check.sh scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
git-subtree-check.sh scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
lint-assertions.py scripted-diff: Use new python 3.7 keywords 2023-01-18 13:00:34 +01:00
lint-circular-dependencies.py move-only: Extract common/args and common/config.cpp from util/system 2023-04-19 10:48:30 +02:00
lint-files.py scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
lint-format-strings.py refactor: cleanups post unsubtree'ing univalue 2022-06-15 12:56:44 +01:00
lint-git-commit-check.py scripted-diff: Use new python 3.7 keywords 2023-01-18 13:00:34 +01:00
lint-include-guards.py refactor: cleanups post unsubtree'ing univalue 2022-06-15 12:56:44 +01:00
lint-includes.py scripted-diff: Use new python 3.7 keywords 2023-01-18 13:00:34 +01:00
lint-locale-dependence.py fuzz: Remove legacy int parse fuzz tests 2023-03-27 16:37:31 +02:00
lint-logs.py scripted-diff: Use new python 3.7 keywords 2023-01-18 13:00:34 +01:00
lint-python-dead-code.py lint: Convert Python dead code linter to Python 2022-04-06 00:55:22 +02:00
lint-python-mutable-default-parameters.py scripted-diff: Use new python 3.7 keywords 2023-01-18 13:00:34 +01:00
lint-python-utf8-encoding.py Disable Python lint in src/secp256k1 2023-04-14 10:36:36 -04:00
lint-python.py Respect and update FILES_ARGS in test/lint/lint-python.py 2023-04-14 10:52:33 -04:00
lint-shell-locale.py refactor: cleanups post unsubtree'ing univalue 2022-06-15 12:56:44 +01:00
lint-shell.py scripted-diff: Use new python 3.7 keywords 2023-01-18 13:00:34 +01:00
lint-spelling.py contrib: remove builder keys 2022-12-19 17:21:35 +00:00
lint-submodule.py scripted-diff: Use new python 3.7 keywords 2023-01-18 13:00:34 +01:00
lint-tests.py scripted-diff: Use new python 3.7 keywords 2023-01-18 13:00:34 +01:00
lint-whitespace.py scripted-diff: Use new python 3.7 keywords 2023-01-18 13:00:34 +01:00
README.md test: add an easy way to run linters locally 2023-01-18 09:48:08 -05:00
run-lint-format-strings.py lint: Fix lint-format-strings false positives when format specifiers have argument positions 2023-04-21 06:53:23 -04:00
spelling.ignore-words.txt add lief to spelling.ignore-words 2023-05-15 16:31:13 -03:00

This folder contains lint scripts.

Running locally

To run linters locally with the same versions as the CI environment, use the included Dockerfile:

cd ./ci/lint
docker build -t bitcoin-linter .

cd /root/of/bitcoin/repo
docker run --rm -v $(pwd):/bitcoin -it bitcoin-linter

After building the container once, you can simply run the last command any time you want to lint.

check-doc.py

Check for missing documentation of command line options.

commit-script-check.sh

Verification of scripted diffs. Scripted diffs are only assumed to run on the latest LTS release of Ubuntu. Running them on other operating systems might require installing GNU tools, such as GNU sed.

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.

Usage: test/lint/git-subtree-check.sh [-r] DIR [COMMIT]
       test/lint/git-subtree-check.sh -?
  • DIR is the prefix within the repository to check.
  • COMMIT is the commit to check, if it is not provided, HEAD will be used.
  • -r checks that subtree commit is present in repository.

To do a full check with -r, make sure that you have fetched the upstream repository branch in which the subtree is maintained:

To do so, add the upstream repository as remote:

git remote add --fetch secp256k1 https://github.com/bitcoin-core/secp256k1.git

all-lint.py

Calls other scripts with the lint- prefix.