forked from lix-project/lix
41 lines
870 B
Nix
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
|
||
|
''
|