lix-releng-staging/tests/repl-completion.nix
Robert Hensing b588a761fe Merge pull request #10799 from hercules-ci/safer-tab-completion
Add repl completion test

(cherry picked from commit 1e2b26734b4da101247678aec405c9dcfdc33f98)

Change-Id: Ic3de39e71960a05a8676190b1ec9a7f0bb6057f5
Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
2024-06-16 04:03:32 +00:00

41 lines
870 B
Nix

{ 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
''