39 lines
		
	
	
	
		
			760 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
	
		
			760 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
| source common.sh
 | |
| 
 | |
| case $system in
 | |
|     *linux*)
 | |
|         ;;
 | |
|     *)
 | |
|         exit 0;
 | |
| esac
 | |
| 
 | |
| set -m # enable job control, needed for kill
 | |
| 
 | |
| profiles="$NIX_STATE_DIR"/profiles
 | |
| rm -f $profiles/*
 | |
| 
 | |
| $nixenv -p $profiles/test -f ./gc-runtime.nix -i gc-runtime
 | |
| 
 | |
| outPath=$($nixenv -p $profiles/test -q --no-name --out-path gc-runtime)
 | |
| echo $outPath
 | |
| 
 | |
| echo "backgrounding program..."
 | |
| $profiles/test/program &
 | |
| child=$!
 | |
| echo PID=$child
 | |
| 
 | |
| $nixenv -p $profiles/test -e gc-runtime
 | |
| $nixenv -p $profiles/test --delete-generations old
 | |
| 
 | |
| cp $TOP/scripts/find-runtime-roots.pl $TEST_ROOT/foo.pl
 | |
| chmod +x $TEST_ROOT/foo.pl
 | |
| NIX_ROOT_FINDER=$TEST_ROOT/foo.pl $nixstore --gc
 | |
| 
 | |
| kill -- -$child
 | |
| 
 | |
| if ! test -e $outPath; then
 | |
|     echo "running program was garbage collected!"
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| exit 0
 |