2019-10-02 01:04:56 +00:00
|
|
|
.PHONY: tests
|
2019-09-07 18:19:54 +00:00
|
|
|
|
2020-05-18 11:24:23 +00:00
|
|
|
EF_TESTS = "testing/ef_tests"
|
|
|
|
STATE_TRANSITION_VECTORS = "testing/state_transition_vectors"
|
2019-09-07 18:19:54 +00:00
|
|
|
|
2020-04-19 02:20:43 +00:00
|
|
|
# Builds the Lighthouse binary in release (optimized).
|
2019-10-02 01:04:56 +00:00
|
|
|
#
|
|
|
|
# Binaries will most likely be found in `./target/release`
|
2019-11-25 04:48:24 +00:00
|
|
|
install:
|
2020-07-31 05:00:39 +00:00
|
|
|
ifeq ($(PORTABLE), true)
|
|
|
|
cargo install --path lighthouse --force --locked --features portable
|
|
|
|
else
|
2020-03-05 01:50:24 +00:00
|
|
|
cargo install --path lighthouse --force --locked
|
2020-07-31 05:00:39 +00:00
|
|
|
endif
|
2020-04-19 02:20:43 +00:00
|
|
|
|
|
|
|
# Builds the lcli binary in release (optimized).
|
|
|
|
install-lcli:
|
2020-07-31 05:00:39 +00:00
|
|
|
ifeq ($(PORTABLE), true)
|
|
|
|
cargo install --path lcli --force --locked --features portable
|
|
|
|
else
|
2020-04-15 07:46:03 +00:00
|
|
|
cargo install --path lcli --force --locked
|
2020-07-31 05:00:39 +00:00
|
|
|
endif
|
2019-09-07 18:19:54 +00:00
|
|
|
|
2019-11-25 04:48:24 +00:00
|
|
|
# Runs the full workspace tests in **release**, without downloading any additional
|
|
|
|
# test vectors.
|
|
|
|
test-release:
|
|
|
|
cargo test --all --release --exclude ef_tests
|
|
|
|
|
|
|
|
# Runs the full workspace tests in **debug**, without downloading any additional test
|
2019-10-02 01:04:56 +00:00
|
|
|
# vectors.
|
2019-11-25 04:48:24 +00:00
|
|
|
test-debug:
|
|
|
|
cargo test --all --exclude ef_tests
|
2019-10-29 16:58:39 +00:00
|
|
|
|
2019-11-25 04:48:24 +00:00
|
|
|
# Runs cargo-fmt (linter).
|
|
|
|
cargo-fmt:
|
|
|
|
cargo fmt --all -- --check
|
2019-10-29 16:58:39 +00:00
|
|
|
|
2020-04-06 10:16:08 +00:00
|
|
|
# Typechecks benchmark code
|
|
|
|
check-benches:
|
|
|
|
cargo check --all --benches
|
|
|
|
|
2019-11-25 04:48:24 +00:00
|
|
|
# Runs only the ef-test vectors.
|
|
|
|
run-ef-tests:
|
2019-10-29 16:58:39 +00:00
|
|
|
cargo test --release --manifest-path=$(EF_TESTS)/Cargo.toml --features "ef_tests"
|
2019-11-25 04:48:24 +00:00
|
|
|
cargo test --release --manifest-path=$(EF_TESTS)/Cargo.toml --features "ef_tests,fake_crypto"
|
2020-07-25 02:03:18 +00:00
|
|
|
cargo test --release --manifest-path=$(EF_TESTS)/Cargo.toml --features "ef_tests,milagro"
|
2019-10-29 16:58:39 +00:00
|
|
|
|
2020-05-08 23:37:21 +00:00
|
|
|
# Runs only the tests/state_transition_vectors tests.
|
|
|
|
run-state-transition-tests:
|
|
|
|
make -C $(STATE_TRANSITION_VECTORS) test
|
|
|
|
|
2019-11-25 04:48:24 +00:00
|
|
|
# Downloads and runs the EF test vectors.
|
2019-10-30 09:42:32 +00:00
|
|
|
test-ef: make-ef-tests run-ef-tests
|
2019-09-07 18:19:54 +00:00
|
|
|
|
2019-11-25 04:48:24 +00:00
|
|
|
# Runs the full workspace tests in release, without downloading any additional
|
|
|
|
# test vectors.
|
|
|
|
test: test-release
|
2019-10-29 16:58:39 +00:00
|
|
|
|
2019-11-25 04:48:24 +00:00
|
|
|
# Runs the entire test suite, downloading test vectors if required.
|
|
|
|
test-full: cargo-fmt test-release test-debug test-ef
|
2019-09-07 18:19:54 +00:00
|
|
|
|
2020-04-20 02:35:11 +00:00
|
|
|
# Lints the code for bad style and potentially unsafe arithmetic using Clippy.
|
2020-06-25 14:04:08 +00:00
|
|
|
# Clippy lints are opt-in per-crate for now. By default, everything is allowed except for performance and correctness lints.
|
2020-04-20 02:35:11 +00:00
|
|
|
lint:
|
2020-07-23 14:18:00 +00:00
|
|
|
cargo clippy --all -- -D warnings
|
2020-04-20 02:35:11 +00:00
|
|
|
|
2019-10-02 01:04:56 +00:00
|
|
|
# Runs the makefile in the `ef_tests` repo.
|
|
|
|
#
|
|
|
|
# May download and extract an archive of test vectors from the ethereum
|
|
|
|
# repositories. At the time of writing, this was several hundred MB of
|
|
|
|
# downloads which extracts into several GB of test vectors.
|
|
|
|
make-ef-tests:
|
|
|
|
make -C $(EF_TESTS)
|
2019-09-07 18:19:54 +00:00
|
|
|
|
2020-05-05 23:12:28 +00:00
|
|
|
# Verifies that state_processing feature arbitrary-fuzz will compile
|
|
|
|
arbitrary-fuzz:
|
2020-05-18 11:24:23 +00:00
|
|
|
cargo check --manifest-path=consensus/state_processing/Cargo.toml --features arbitrary-fuzz
|
2020-05-05 23:12:28 +00:00
|
|
|
|
2020-05-26 07:04:39 +00:00
|
|
|
# Runs cargo audit (Audit Cargo.lock files for crates with security vulnerabilities reported to the RustSec Advisory Database)
|
|
|
|
audit:
|
|
|
|
cargo install --force cargo-audit
|
|
|
|
cargo audit
|
|
|
|
|
2020-06-14 00:59:50 +00:00
|
|
|
# Runs `cargo udeps` to check for unused dependencies
|
|
|
|
udeps:
|
|
|
|
cargo +nightly udeps --tests --all-targets --release
|
|
|
|
|
2019-10-02 01:04:56 +00:00
|
|
|
# Performs a `cargo` clean and cleans the `ef_tests` directory.
|
|
|
|
clean:
|
|
|
|
cargo clean
|
|
|
|
make -C $(EF_TESTS) clean
|
2020-05-08 23:37:21 +00:00
|
|
|
make -C $(STATE_TRANSITION_VECTORS) clean
|