2 # Run `cargo test` on an installed Debian crate, e.g. in an autopkgtest.
4 # Requires dev-dependencies to be installed. If you give extra flags such as
5 # "--all-features", then these features' dependencies must also be installed.
12 if [ -z "$pkg" -o -z "$ver" ]; then
13 echo >&2 "Usage: $0 <crate> <version> [<extra test flags, e.g. --all-features>]"
18 pkgdir
="/usr/share/cargo/registry/${pkg}-${ver}"
19 if [ ! -d "$pkgdir" ]; then
20 echo >&2 "crate directory not found: $pkgdir"
26 # https://stackoverflow.com/a/14812383 inside "trap" avoids running handler twice
27 trap 'excode=$?; rm -rf "'"$rundir"'"; trap - EXIT' EXIT HUP INT QUIT PIPE TERM
29 # set envvars necessary for cargo-debian-wrapper
31 export DEB_CARGO_CRATE
="${pkg}_${ver}"
32 export CARGO_HOME
="$rundir/debian/cargo_home"
33 mkdir
-p "$CARGO_HOME"
34 mkdir
-p "$rundir/registry"
36 .
<(dpkg-buildflags
--export)
37 .
<(dpkg-architecture
-s)
38 RUST_TYPE
="$(rustc --version --verbose | sed -ne 's/^host: //p')"
39 export DEB_HOST_RUST_TYPE
="$RUST_TYPE"
40 export DEB_BUILD_RUST_TYPE
="$RUST_TYPE"
41 export DEB_TARGET_RUST_TYPE
="$RUST_TYPE"
43 export CARGO_TARGET_DIR
="$rundir/target"
44 export PATH
="/usr/share/cargo/bin:$PATH"
48 cargo prepare-debian
"$rundir/registry" --link-from-system