-
Notifications
You must be signed in to change notification settings - Fork 416
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
32 additions
and
27 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,63 +1,65 @@ | ||
# | ||
# Check rule validity and check that semgrep finds the expected findings. | ||
# See https://semgrep.dev/docs/writing-rules/testing-rules for more info. | ||
# | ||
# The semgrep repo also runs this as part of its CI for consistency. | ||
# The semgrep repo (and now semgrep-pro repo) also runs those tests as part | ||
# of its CI for consistency. | ||
# | ||
.PHONY: test | ||
test: | ||
$(MAKE) validate | ||
$(MAKE) test-only | ||
|
||
# Use the SEMGREP environment variable to specify a non-standard semgrep | ||
# command. This is useful for calling a development version of semgrep | ||
# e.g. | ||
# PIPENV_PIPFILE=~/semgrep/cli/Pipfile SEMGREP='pipenv run semgrep' make test | ||
# Use the SEMGREP env variable to specify a non-standard semgrep command | ||
SEMGREP ?= semgrep | ||
|
||
# TODO: semgrep validate use a different targeting than semgrep test | ||
.PHONY: test-only | ||
#old: pysemgrep --test was also using flags below but not needed | ||
# --test-ignore-todo --strict --disable-version-check --metrics=off --verbose | ||
test-only: | ||
$(SEMGREP) test --pro . | ||
|
||
# TODO: semgrep validate use a different targeting than 'semgrep test' | ||
# so we unfortunately need this whitelist of dirs because it reports | ||
# errors on stats/ and scripts/ (and .github yaml) files otherwise | ||
# NOTE: the apex/ and elixir/ requires --pro (hence the --pro below) | ||
# alt: we could also skip libsonnet/ and trusted_python/ | ||
DIRS=\ | ||
ai \ | ||
apex \ | ||
# errors on stats/ and scripts/ (and .github/workflows/) files otherwise | ||
# (we also skip libsonnet/ and trusted_python/ which do not contain rules) | ||
LANG_DIRS=\ | ||
bash \ | ||
c \ | ||
clojure \ | ||
csharp \ | ||
dockerfile \ | ||
elixir \ | ||
generic \ | ||
go \ | ||
html \ | ||
java \ | ||
javascript \ | ||
json \ | ||
kotlin \ | ||
libsonnet \ | ||
ocaml \ | ||
php \ | ||
problem-based-packs \ | ||
python \ | ||
ruby \ | ||
rust \ | ||
scala \ | ||
solidity \ | ||
swift \ | ||
terraform \ | ||
trusted_python \ | ||
typescript \ | ||
yaml | ||
PRO_DIRS=apex elixir | ||
OTHER_DIRS=ai problem-based-packs | ||
DIRS=$(LANG_DIRS) $(PRO_DIRS) $(OTHER_DIRS) | ||
|
||
.PHONY: validate | ||
#old: pysemgrep --validate was also using the flags below but not needed | ||
# --strict --disable-version-check --metrics=off --verbose | ||
validate: | ||
$(SEMGREP) validate --pro $(DIRS) | ||
|
||
.PHONY: test-only | ||
#old: pysemgrep --test was also using | ||
# --test-ignore-todo --strict --disable-version-check --metrics=off --verbose | ||
test-only: | ||
$(SEMGREP) test --pro . | ||
.PHONY: test-oss-only | ||
test-oss-only: | ||
@for dir in $(LANG_DIRS) $(OTHER_DIRS); do \ | ||
echo "processing $$dir"; \ | ||
$(SEMGREP) test $$dir; \ | ||
done |