Patchwork D9079: rust-tests: add test to check if `Cargo.lock` is up-to-date

login
register
mail settings
Submitter phabricator
Date Sept. 24, 2020, 2:40 p.m.
Message ID <differential-rev-PHID-DREV-3kutxzz37czdi27lwbxh-req@mercurial-scm.org>
Download mbox | patch
Permalink /patch/47273/
State Superseded
Headers show

Comments

phabricator - Sept. 24, 2020, 2:40 p.m.
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

Patch

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: