The most trivial of all derivations. It is more useful than it looks. Can be used to bind nix expressions (e.g. test suites) to a derivation, so that `nix-build` does not crap itself. Change-Id: I61c24d8c129c9505733161207f3c30e820f5b15e Reviewed-on: https://cl.tvl.fyi/c/depot/+/665 Reviewed-by: tazjin <mail@tazj.in>
		
			
				
	
	
		
			32 lines
		
	
	
	
		
			742 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
	
		
			742 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { emptyDerivation, getBins, pkgs, writeExecline, runTestsuite, it, assertEq }:
 | |
| 
 | |
| let
 | |
|   bins = getBins pkgs.s6-portable-utils [ "s6-echo" ];
 | |
| 
 | |
|   empty = it "is just an empty path" [
 | |
|     (assertEq "path empty"
 | |
|       (builtins.readFile emptyDerivation)
 | |
|       "")
 | |
|   ];
 | |
| 
 | |
|   fooOut = emptyDerivation {
 | |
|     builder = writeExecline "foo-builder" {} [
 | |
|       "importas" "out" "out"
 | |
|       "redirfd" "-w" "1" "$out"
 | |
|       bins.s6-echo "-n" "foo"
 | |
|     ];
 | |
|   };
 | |
| 
 | |
|   overrideBuilder = it "can override the builder" [
 | |
|     (assertEq "output is foo"
 | |
|       (builtins.readFile fooOut)
 | |
|       "foo")
 | |
|     (assertEq "can add new drv variables"
 | |
|       (emptyDerivation { foo = "bar"; }).foo
 | |
|       "bar")
 | |
|   ];
 | |
| 
 | |
| in runTestsuite "emptyDerivation" [
 | |
|   empty
 | |
|   overrideBuilder
 | |
| ]
 |