1cc8aa56a4
Change-Id: I0d4a8b2af814fd2870c3eb4218ee4fbaba1216f5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/4605 Tested-by: BuildkiteCI Reviewed-by: zseri <zseri.devel@ytrizja.de>
49 lines
1.3 KiB
Nix
49 lines
1.3 KiB
Nix
{ depot, lib, pkgs, ... }:
|
|
|
|
let
|
|
sourceFilter = name: type:
|
|
let
|
|
baseName = builtins.baseNameOf (builtins.toString name);
|
|
in
|
|
(baseName == "Cargo.toml")
|
|
|| (type == "directory" && baseName == "src")
|
|
|| (lib.hasSuffix ".rs" baseName)
|
|
;
|
|
in
|
|
|
|
pkgs.buildRustCrate rec {
|
|
pname = "store-ref-scanner";
|
|
crateName = "store-ref-scanner";
|
|
version = "0.1.0";
|
|
edition = "2021";
|
|
src = lib.cleanSourceWith { filter = sourceFilter; src = ./.; };
|
|
|
|
passthru.tests = pkgs.buildRustCrate {
|
|
pname = "store-ref-scanner-tests";
|
|
inherit crateName src version edition;
|
|
buildTests = true;
|
|
postInstall = ''
|
|
set -ex
|
|
export RUST_BACKTRACE=1
|
|
# recreate a file hierarchy as when running tests with cargo
|
|
# the source for test data
|
|
# build outputs
|
|
testRoot=target/debug
|
|
mkdir -p $testRoot
|
|
chmod +w -R .
|
|
# test harness executables are suffixed with a hash,
|
|
# like cargo does this allows to prevent name collision
|
|
# with the main executables of the crate
|
|
hash=$(basename $out)
|
|
ls -lasR $out
|
|
for file in $out/tests/*; do
|
|
f=$testRoot/$(basename $file)-$hash
|
|
cp $file $f
|
|
$f 2>&1 | tee -a $out/tests.log
|
|
done
|
|
rm -rf $out/tests
|
|
set +ex
|
|
'';
|
|
};
|
|
|
|
}
|