nix/tests/common.sh.in
2014-02-17 12:22:50 +01:00

90 lines
1.9 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 _NIX_TEST_SHARED=$TEST_ROOT/shared
export NIX_REMOTE=$NIX_REMOTE_
export PATH=@bindir@:$PATH
export NIX_BUILD_HOOK=
export dot=@dot@
export xmllint="@xmllint@"
export xsltproc="@xsltproc@"
export SHELL="@bash@"
export version=@PACKAGE_VERSION@
export system=@system@
cacheDir=$TEST_ROOT/binary-cache
readLink() {
ls -l "$1" | sed 's/.*->\ //'
}
clearProfiles() {
profiles="$NIX_STATE_DIR"/profiles
rm -rf $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/*
}
clearCache() {
rm -rf "$cacheDir"
}
startDaemon() {
# Start the daemon, wait for the socket to appear. !!!
# nix-daemon should have an option to fork into the background.
rm -f $NIX_STATE_DIR/daemon-socket/socket
nix-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
}
set -x