ea402a255f
Ensuring that the tests work from the build tree requires a growing number of nasty hacks. The tests also don't verify that the installed Nix actually works. Thus, the tests now require "make install" to have been run.
81 lines
1.8 KiB
Bash
81 lines
1.8 KiB
Bash
set -e
|
||
|
||
datadir="@datadir@"
|
||
|
||
export TEST_ROOT=$(pwd)/test-tmp
|
||
export NIX_STORE_DIR
|
||
if ! NIX_STORE_DIR=$(readlink -f $TEST_ROOT/store 2> /dev/null); then
|
||
# Maybe the build directory is symlinked.
|
||
export NIX_IGNORE_SYMLINK_STORE=1
|
||
NIX_STORE_DIR=$TEST_ROOT/store
|
||
fi
|
||
export NIX_LOCALSTATE_DIR=$TEST_ROOT/var
|
||
export NIX_LOG_DIR=$TEST_ROOT/var/log/nix
|
||
export NIX_STATE_DIR=$TEST_ROOT/var/nix
|
||
export NIX_DB_DIR=$TEST_ROOT/db
|
||
export NIX_CONF_DIR=$TEST_ROOT/etc
|
||
export NIX_MANIFESTS_DIR=$TEST_ROOT/var/nix/manifests
|
||
export SHARED=$TEST_ROOT/shared
|
||
|
||
export PATH=@bindir@:$PATH
|
||
|
||
export NIX_BUILD_HOOK=
|
||
export dot=@dot@
|
||
export xmllint="@xmllint@"
|
||
export xmlflags="@xmlflags@"
|
||
export xsltproc="@xsltproc@"
|
||
export SHELL="@shell@"
|
||
|
||
export version=@version@
|
||
export system=@system@
|
||
|
||
readLink() {
|
||
ls -l "$1" | sed 's/.*->\ //'
|
||
}
|
||
|
||
clearProfiles() {
|
||
profiles="$NIX_STATE_DIR"/profiles
|
||
rm -f $profiles/*
|
||
}
|
||
|
||
clearStore() {
|
||
echo "clearing store..."
|
||
chmod -R +w "$NIX_STORE_DIR"
|
||
rm -rf "$NIX_STORE_DIR"
|
||
mkdir "$NIX_STORE_DIR"
|
||
rm -rf "$NIX_DB_DIR"
|
||
mkdir "$NIX_DB_DIR"
|
||
nix-store --init
|
||
clearProfiles
|
||
rm -f "$NIX_STATE_DIR"/gcroots/auto/*
|
||
rm -f "$NIX_STATE_DIR"/gcroots/ref
|
||
}
|
||
|
||
clearManifests() {
|
||
rm -f $NIX_STATE_DIR/manifests/*
|
||
}
|
||
|
||
startDaemon() {
|
||
# Start the daemon, wait for the socket to appear. !!!
|
||
# ‘nix-worker’ should have an option to fork into the background.
|
||
rm -f $NIX_STATE_DIR/daemon-socket/socket
|
||
nix-worker --daemon &
|
||
for ((i = 0; i < 30; i++)); do
|
||
if [ -e $NIX_STATE_DIR/daemon-socket/socket ]; then break; fi
|
||
sleep 1
|
||
done
|
||
pidDaemon=$!
|
||
trap "kill -9 $pidDaemon" EXIT
|
||
export NIX_REMOTE=daemon
|
||
}
|
||
|
||
killDaemon() {
|
||
kill -9 $pidDaemon
|
||
wait $pidDaemon || true
|
||
trap "" EXIT
|
||
}
|
||
|
||
fail() {
|
||
echo "$1"
|
||
exit 1
|
||
}
|