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" = "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;
|
||||
|
||||
# ruby "interpreter" that outputs "$@"
|
||||
ruby = runCommand "ruby" {} ''
|
||||
mkdir -p $out/bin
|
||||
echo 'printf -- "$*"' > $out/bin/ruby
|
||||
chmod a+rx $out/bin/ruby
|
||||
'';
|
||||
|
||||
inherit 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…
Reference in a new issue