summaryrefslogtreecommitdiff
path: root/tests/guix-build.sh
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2012-10-31 23:27:51 +0100
committerLudovic Courtès <ludo@gnu.org>2012-11-01 00:52:46 +0100
commit97298ffae9fef6260bc812fffb01972736bc0ab4 (patch)
tree5497c0f1bc4fd7fb77079b68e060b17a98a4eea4 /tests/guix-build.sh
parent073c34d72f94adf6c4c307239b1de0d14bdb60f3 (diff)
build: Add unit test for the `guix-build' command.
* tests/guix-build.sh: New file. * Makefile.am (TESTS): Add it. (LOG_COMPILER): Rename to... (SCM_LOG_COMPILER): ... this. Move flags to... (AM_SCM_LOG_FLAGS): ... this. (TEST_EXTENSIONS, SH_LOG_COMPILER, AM_SH_LOG_FLAGS): New variables.
Diffstat (limited to 'tests/guix-build.sh')
-rw-r--r--tests/guix-build.sh47
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/guix-build.sh b/tests/guix-build.sh
new file mode 100644
index 0000000000..4df5cc0790
--- /dev/null
+++ b/tests/guix-build.sh
@@ -0,0 +1,47 @@
+# Guix --- Nix package management from Guile. -*- coding: utf-8 -*-
+# Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org>
+#
+# 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 <http://www.gnu.org/licenses/>.
+
+#
+# Test the `guix-build' command-line utility.
+#
+
+guix-build --version
+
+# Should fail.
+guix-build -e + || true
+
+# Should pass.
+guix-build -e '(@@ (distro packages base) %bootstrap-guile)' | \
+ grep -e '-guile-'
+guix-build hello -d | \
+ grep -e '-hello-[0-9\.]\+\.drv$'
+
+# Should fail because the name/version combination could not be found.
+if guix-build hello-0.0.1 -n; then false; else true; fi
+
+# Keep a symlink to the result, registered as a root.
+result="t-result-$$"
+guix-build -r "$result" \
+ -e '(@@ (distro packages base) %bootstrap-guile)'
+test -x "$result/bin/guile"
+
+# Should fail, because $result already exists.
+if guix-build -r "$result" -e '(@@ (distro packages base) %bootstrap-guile)'
+then false; else true; fi
+
+rm -f "$result"