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