Adds nix-shell test for special-cased ruby interpreter.
				
					
				
			The test fakes the interpreter only to verify the arguments it would be given.
This commit is contained in:
		
							parent
							
								
									399f43c3d5
								
							
						
					
					
						commit
						9478f88681
					
				
					 3 changed files with 23 additions and 0 deletions
				
			
		| 
						 | 
					@ -39,3 +39,12 @@ chmod a+rx $TEST_ROOT/shell.shebang.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
output=$($TEST_ROOT/shell.shebang.sh abc def)
 | 
					output=$($TEST_ROOT/shell.shebang.sh abc def)
 | 
				
			||||||
[ "$output" = "foo bar abc def" ]
 | 
					[ "$output" = "foo bar abc def" ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Test nix-shell shebang mode for ruby
 | 
				
			||||||
 | 
					# This uses a fake interpreter that returns the arguments passed
 | 
				
			||||||
 | 
					# This, in turn, verifies the `rc` script is valid and the `load()` script (given using `-e`) is as expected.
 | 
				
			||||||
 | 
					sed -e "s|@ENV_PROG@|$(type -p env)|" shell.shebang.rb > $TEST_ROOT/shell.shebang.rb
 | 
				
			||||||
 | 
					chmod a+rx $TEST_ROOT/shell.shebang.rb
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					output=$($TEST_ROOT/shell.shebang.rb abc ruby)
 | 
				
			||||||
 | 
					[ "$output" = '-e load("'"$TEST_ROOT"'/shell.shebang.rb") -- abc ruby' ]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -45,5 +45,12 @@ let pkgs = rec {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  bash = shell;
 | 
					  bash = shell;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # ruby "interpreter" that outputs "$@"
 | 
				
			||||||
 | 
					  ruby = runCommand "ruby" {} ''
 | 
				
			||||||
 | 
					    mkdir -p $out/bin
 | 
				
			||||||
 | 
					    echo 'printf -- "$*"' > $out/bin/ruby
 | 
				
			||||||
 | 
					    chmod a+rx $out/bin/ruby
 | 
				
			||||||
 | 
					  '';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  inherit pkgs;
 | 
					  inherit pkgs;
 | 
				
			||||||
}; in pkgs
 | 
					}; in pkgs
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										7
									
								
								tests/shell.shebang.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								tests/shell.shebang.rb
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,7 @@
 | 
				
			||||||
 | 
					#! @ENV_PROG@ nix-shell
 | 
				
			||||||
 | 
					#! ruby
 | 
				
			||||||
 | 
					#! nix-shell -I nixpkgs=shell.nix --no-substitute
 | 
				
			||||||
 | 
					#! nix-shell --pure -p ruby -i ruby
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Contents doesn't matter.
 | 
				
			||||||
 | 
					abort("This shouldn't be executed.")
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue