From patchwork Thu Sep 24 14:40:45 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: D9079: rust-tests: add test to check if `Cargo.lock` is up-to-date From: phabricator X-Patchwork-Id: 47273 Message-Id: To: Phabricator Cc: mercurial-devel@mercurial-scm.org Date: Thu, 24 Sep 2020 14:40:45 +0000 Alphare created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY 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`. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D9079 AFFECTED FILES tests/hghave.py tests/test-check-cargo-lock.t CHANGE DETAILS To: Alphare, #hg-reviewers Cc: mercurial-patches, mercurial-devel diff --git a/tests/test-check-cargo-lock.t b/tests/test-check-cargo-lock.t new file mode 100644 --- /dev/null +++ b/tests/test-check-cargo-lock.t @@ -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 diff --git a/tests/hghave.py b/tests/hghave.py --- a/tests/hghave.py +++ b/tests/hghave.py @@ -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: