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
 | 
						|
]
 |