91dc6d7234
- Add missing fix mode options for: CLANG_FORMAT, ENV, GOOGLE_JAVA_FORMAT, NATURAL_LANGUAGE, PYTHON_ISORT, RUST_CLIPPY. - Refactor linter tests to make them shorter because there's no need to have big test files. - Refactor 'bad' linter tests for linters that support fix mode so they contain only automatically fixable issues. This is needed to avoid adding another set of 'bad' linter tests for fix mode. - Provide configuration files for linters that support fix mode and for which the default configuration is not suitable to enable fix mode: ansible-lint, ESLint, golangci-lint. - Add a test case for linter commands options for linters that support fix mode, to ensure that fix mode and check-only mode options have been defined. - Refactor the fix mode test to check if linters actually applied modifications to files. - Update documentation about adding test cases for linters that support fix mode. - Don't exit with a fatal error if VALIDATE_xxx is false when testing fix mode because not all linters support fix mode. To enable this, set the new FIX_MODE_TEST_CASE_RUN variable to true. |
||
---|---|---|
.. | ||
ansible | ||
arm | ||
bash | ||
bash_exec | ||
checkov | ||
clang_format | ||
clojure | ||
cloudformation | ||
coffeescript | ||
cpp | ||
csharp | ||
css | ||
dart | ||
dockerfile_hadolint | ||
editorconfig | ||
env | ||
gherkin | ||
github_actions | ||
gitleaks | ||
go | ||
go_modules | ||
go_releaser | ||
google_java_format | ||
groovy | ||
html | ||
java | ||
javascript_es | ||
javascript_prettier | ||
javascript_standard | ||
jscpd | ||
json | ||
jsonc | ||
jsx | ||
kotlin | ||
kubernetes_kubeconform | ||
latex | ||
lua | ||
markdown | ||
natural_language | ||
openapi | ||
perl | ||
php_builtin | ||
php_phpcs | ||
php_phpstan | ||
php_psalm | ||
powershell | ||
protobuf | ||
python_black | ||
python_flake8 | ||
python_isort | ||
python_mypy | ||
python_pylint | ||
python_ruff | ||
r | ||
raku | ||
renovate | ||
ruby | ||
rust_2015 | ||
rust_2018 | ||
rust_2021 | ||
rust_clippy | ||
scalafmt | ||
shell_shfmt | ||
snakemake_lint | ||
snakemake_snakefmt | ||
sql | ||
sqlfluff | ||
states | ||
tekton | ||
terraform_fmt | ||
terraform_terrascan | ||
terraform_tflint | ||
terragrunt | ||
tsx | ||
typescript_es | ||
typescript_prettier | ||
typescript_standard | ||
xml | ||
yaml | ||
README.md |
Test Cases
This directory contains test cases that super-linter uses to validate if a particular linter is working.
These test cases focus on how super-linter invokes each linter and their exit codes. We deliberately avoid to verify if the output of a given linter matches the expectations because it's the responsibility of each linter to do so.
Test case format
Each super-linter language should have its own directory, named after the language they refer to.
The name of each test case denotes its nature:
- Test cases that are expected to pass validation contain the
good
string in their filename, or path. Example:markdown_good_5.md
- Test cases that are expected to fail validation contain the
bad
string in their filename, or path. Example:markdown_bad_5.md
Notes about specific tests
In this section, we explain the peculiarities of certain test cases.
SQL Fluff test cases
From version 0.12.0 SQLFluff requires a dialect to be set, and no longer sets a
default. This can be provided as a command-line argument, or a .sqlfluff
config file (either in the usualy place for SQLFluff config files, or within the
folder containg the SQL).
For SQLFluff we have added a default .sqlfluff
config file in its test
directory.
OpenAPI test cases
The _bad_
tests are valid .yml
/.json
but invalid OpenAPI specs.
The test extensions used are .ymlopenapi
/.jsonopenapi
instead of
.yml
/.json
. This is to prevent the YAML
and JSON
tests from picking them
up.
ARM test cases
apiVersions
older than 2 years (730 days) are treated as errors by the ARM linter if there is a newer version available.
Ansible test cases
roles/ghe-initialize
is a valid Ansible role