mirror of
https://github.com/NixOS/nix.git
synced 2024-11-22 06:42:28 +00:00
Merge pull request #10799 from hercules-ci/safer-tab-completion
Add repl completion test
This commit is contained in:
commit
1e2b26734b
@ -393,6 +393,7 @@
|
|||||||
in pkgs.buildPackages.runCommand "test-rl-next-release-notes" { } ''
|
in pkgs.buildPackages.runCommand "test-rl-next-release-notes" { } ''
|
||||||
LANG=C.UTF-8 ${pkgs.changelog-d-nix}/bin/changelog-d ${./doc/manual/rl-next} >$out
|
LANG=C.UTF-8 ${pkgs.changelog-d-nix}/bin/changelog-d ${./doc/manual/rl-next} >$out
|
||||||
'';
|
'';
|
||||||
|
repl-completion = nixpkgsFor.${system}.native.callPackage ./tests/repl-completion.nix { };
|
||||||
} // (lib.optionalAttrs (builtins.elem system linux64BitSystems)) {
|
} // (lib.optionalAttrs (builtins.elem system linux64BitSystems)) {
|
||||||
dockerImage = self.hydraJobs.dockerImage.${system};
|
dockerImage = self.hydraJobs.dockerImage.${system};
|
||||||
} // (lib.optionalAttrs (!(builtins.elem system linux32BitSystems))) {
|
} // (lib.optionalAttrs (!(builtins.elem system linux32BitSystems))) {
|
||||||
|
40
tests/repl-completion.nix
Normal file
40
tests/repl-completion.nix
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
{ runCommand, nix, expect }:
|
||||||
|
|
||||||
|
# We only use expect when necessary, e.g. for testing tab completion in nix repl.
|
||||||
|
# See also tests/functional/repl.sh
|
||||||
|
|
||||||
|
runCommand "repl-completion" {
|
||||||
|
nativeBuildInputs = [
|
||||||
|
expect
|
||||||
|
nix
|
||||||
|
];
|
||||||
|
expectScript = ''
|
||||||
|
# Regression https://github.com/NixOS/nix/pull/10778
|
||||||
|
spawn nix repl --offline --extra-experimental-features nix-command
|
||||||
|
expect "nix-repl>"
|
||||||
|
send "foo = import ./does-not-exist.nix\n"
|
||||||
|
expect "nix-repl>"
|
||||||
|
send "foo.\t"
|
||||||
|
expect {
|
||||||
|
"nix-repl>" {
|
||||||
|
puts "Got another prompt. Good."
|
||||||
|
}
|
||||||
|
eof {
|
||||||
|
puts "Got EOF. Bad."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
exit 0
|
||||||
|
'';
|
||||||
|
passAsFile = [ "expectScript" ];
|
||||||
|
}
|
||||||
|
''
|
||||||
|
export NIX_STORE=$TMPDIR/store
|
||||||
|
export NIX_STATE_DIR=$TMPDIR/state
|
||||||
|
export HOME=$TMPDIR/home
|
||||||
|
mkdir $HOME
|
||||||
|
|
||||||
|
nix-store --init
|
||||||
|
expect $expectScriptPath
|
||||||
|
touch $out
|
||||||
|
''
|
Loading…
Reference in New Issue
Block a user