]> git.proxmox.com Git - dh-cargo.git/commitdiff
Add cargo-auto-test to prepare for running autopkgtests
authorXimin Luo <infinity0@debian.org>
Mon, 18 Mar 2019 00:41:28 +0000 (17:41 -0700)
committerXimin Luo <infinity0@debian.org>
Mon, 18 Mar 2019 00:41:28 +0000 (17:41 -0700)
cargo-auto-test [new file with mode: 0755]
debian/changelog
debian/dh-cargo.install

diff --git a/cargo-auto-test b/cargo-auto-test
new file mode 100755 (executable)
index 0000000..0777f70
--- /dev/null
@@ -0,0 +1,49 @@
+#!/bin/bash
+# Run `cargo test` on an installed Debian crate, e.g. in an autopkgtest.
+#
+# Requires dev-dependencies to be installed. If you give extra flags such as
+# "--all-features", then these features' dependencies must also be installed.
+
+set -e
+
+pkg="$1"
+ver="$2"
+
+if [ -z "$pkg" -o -z "$ver" ]; then
+       echo >&2 "Usage: $0 <crate> <version> [<extra test flags, e.g. --all-features>]"
+       exit 2
+fi
+shift 2
+
+pkgdir="/usr/share/cargo/registry/${pkg}-${ver}"
+if [ ! -d "$pkgdir" ]; then
+       echo >&2 "crate directory not found: $pkgdir"
+       exit 1
+fi
+cd "$pkgdir"
+
+rundir=$(mktemp -d)
+# https://stackoverflow.com/a/14812383 inside "trap" avoids running handler twice
+trap 'excode=$?; rm -rf "'"$rundir"'"; trap - EXIT' EXIT HUP INT QUIT PIPE TERM
+
+# set envvars necessary for cargo-debian-wrapper
+
+export DEB_CARGO_CRATE="${pkg}_${ver}"
+export CARGO_HOME="$rundir/debian/cargo_home"
+mkdir -p "$CARGO_HOME"
+mkdir -p "$rundir/registry"
+
+. <(dpkg-buildflags --export)
+. <(dpkg-architecture -s)
+RUST_TYPE="$(rustc --version --verbose | sed -ne 's/^host: //p')"
+export DEB_HOST_RUST_TYPE="$RUST_TYPE"
+export DEB_BUILD_RUST_TYPE="$RUST_TYPE"
+export DEB_TARGET_RUST_TYPE="$RUST_TYPE"
+
+export CARGO_TARGET_DIR="$rundir/target"
+export PATH="/usr/share/cargo/bin:$PATH"
+
+# run the test!
+
+cargo prepare-debian "$rundir/registry" --link-from-system
+cargo test "$@"
index 1fd2a69a914fc562b4b7aa3da9e6f4030fc68337..f1b12b79cc1fbcfaf1305b4fcd0bb16b2e6fc3ef 100644 (file)
@@ -1,3 +1,9 @@
+dh-cargo (18) UNRELEASED; urgency=medium
+
+  * Add cargo-auto-test to prepare for running autopkgtests.
+
+ -- Ximin Luo <infinity0@debian.org>  Sun, 17 Mar 2019 17:39:56 -0700
+
 dh-cargo (17) unstable; urgency=medium
 
   * Use --link-from-system from the newer debian-cargo-wrapper.
index e50e23749177befaab6b51604c13e530a4a296af..1c4fe4b62a822ae5702312c6b3fc82f0d9725b33 100644 (file)
@@ -1,2 +1,3 @@
-cargo.pm /usr/share/perl5/Debian/Debhelper/Buildsystem/
+cargo.pm             /usr/share/perl5/Debian/Debhelper/Buildsystem/
 dh-cargo-built-using /usr/share/cargo/bin
+cargo-auto-test      /usr/share/cargo/bin