From d23077dc5ca1517bd6d1600664fe2303b86eb16c Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 4 Dec 2012 23:16:11 +0100 Subject: daemon: Add test. * daemon.am (test_root, AM_TESTS_ENVIRONMENT): New variables. (clean-local): New target. * tests/guix-daemon.sh: New file. --- .gitignore | 1 + daemon.am | 12 ++++++++++++ tests/guix-daemon.sh | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 tests/guix-daemon.sh diff --git a/.gitignore b/.gitignore index 89f0ae797c..d39ad6ed96 100644 --- a/.gitignore +++ b/.gitignore @@ -60,3 +60,4 @@ stamp-h[0-9] /libstore.a /libutil.a /guix-daemon +/test-tmp diff --git a/daemon.am b/daemon.am index 79e2715c74..48b0871a97 100644 --- a/daemon.am +++ b/daemon.am @@ -151,3 +151,15 @@ EXTRA_DIST += \ nix/libstore/schema.sql \ nix/AUTHORS \ nix/COPYING + +# Temporary directory used to store the daemon's data. +test_root = $(abs_top_builddir)/test-tmp + +AM_TESTS_ENVIRONMENT += \ + TEST_ROOT="$(test_root)" + +TESTS += \ + tests/guix-daemon.sh + +clean-local: + -rm -rf "$(test_root)" diff --git a/tests/guix-daemon.sh b/tests/guix-daemon.sh new file mode 100644 index 0000000000..d7926b2376 --- /dev/null +++ b/tests/guix-daemon.sh @@ -0,0 +1,46 @@ +# Guix --- Nix package management from Guile. -*- coding: utf-8 -*- +# Copyright (C) 2012 Ludovic Courtès +# +# This file is part of Guix. +# +# Guix is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or (at +# your option) any later version. +# +# Guix is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Guix. If not, see . + +# +# Test the daemon. +# + +set -e + +NIX_SUBSTITUTERS="" # don't resort to substituters +NIX_IGNORE_SYMLINK_STORE=1 # in case the store is a symlink +NIX_STORE_DIR="$TEST_ROOT/store" +NIX_LOCALSTATE_DIR="$TEST_ROOT/var" +NIX_LOG_DIR="$TEST_ROOT/var/log/nix" +NIX_STATE_DIR="$TEST_ROOT/var/nix" +NIX_DB_DIR="$TEST_ROOT/db" +export NIX_SUBSTITUTERS NIX_IGNORE_SYMLINK_STORE NIX_STORE_DIR \ + NIX_LOCALSTATE_DIR NIX_LOG_DIR NIX_STATE_DIR NIX_DB_DIR + +guix-daemon --version +guix-build --version + +# Launch the daemon without chroot support because is may be +# unavailable, for instance if we're not running as root. +guix-daemon --disable-chroot & + +daemon_pid=$! +trap "kill $daemon_pid" EXIT + +guix-build -e '(@ (distro packages bootstrap) %bootstrap-guile)' +guix-build coreutils -n -- cgit v1.2.3