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
--- 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:
--- /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