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
 | 
						|
    '';
 | 
						|
  };
 | 
						|
 | 
						|
}
 |