# HG changeset patch # User Raphaël Gomès # Date 1600957800 -7200 # Node ID 952f9d37002c43304196020a75f1b28f37a16877 # Parent 10284ce3d5ed9abe6384c47d238cf2e0b9d11d62 rust-tests: add test to check if `Cargo.lock` is up-to-date An out-of-date `Cargo.lock` is the source of rebase conflicts, prevents a reproductible build, introduces desync between the series that introduces a change in dependencies and the one that eventually commits the `Cargo.lock`, and is just a general annoyance. This commit demonstrates that the test works, the next one fixes the currently out-of-date `Cargo.lock`. Differential Revision: https://phab.mercurial-scm.org/D9079 diff -r 10284ce3d5ed -r 952f9d37002c tests/hghave.py --- a/tests/hghave.py Tue Sep 01 18:08:24 2020 +0530 +++ b/tests/hghave.py Thu Sep 24 16:30:00 2020 +0200 @@ -1066,6 +1066,11 @@ ) +@check("cargo", "cargo tool") +def has_cargo(): + return matchoutput('`rustup which cargo` --version', b'cargo') + + @check("lzma", "python lzma module") def has_lzma(): try: diff -r 10284ce3d5ed -r 952f9d37002c tests/test-check-cargo-lock.t --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-check-cargo-lock.t Thu Sep 24 16:30:00 2020 +0200 @@ -0,0 +1,11 @@ +#require cargo test-repo + $ . "$TESTDIR/helpers-testrepo.sh" + $ cd "$TESTDIR"/../rust + +Check if Cargo.lock is up-to-date. Will fail with a 101 error code if not. + + $ cargo check --locked --all --quiet + +However most CIs will run `cargo build` or similar before running the tests, so we need to check if it was modified + + $ testrepohg diff