summary refs log tree commit diff
path: root/tests/build-utils.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-03-16 17:07:57 +0100
committerLudovic Courtès <ludo@gnu.org>2019-03-16 18:15:13 +0100
commitf0cc5e7e1e4c03af29c5d4855dc5962502c49147 (patch)
tree8ed975abe2ac957b165a7f32900c739949f01cf5 /tests/build-utils.scm
parent22f95e028f038cee342f455dfc55bd32b804907c (diff)
downloadguix-f0cc5e7e1e4c03af29c5d4855dc5962502c49147.tar.gz
booloader: Add 'invoke/quiet'.
* gnu/build/bootloader.scm (G_): New macro.
(open-pipe-with-stderr, invoke/quiet): New procedures.
* tests/build-utils.scm ("invoke/quiet, success")
("invoke/quiet, failure")
("invoke/quiet, failure, message on stderr"): New tests.
* po/guix/POTFILES.in: Add bootloader.scm.
Diffstat (limited to 'tests/build-utils.scm')
-rw-r--r--tests/build-utils.scm22
1 files changed, 21 insertions, 1 deletions
diff --git a/tests/build-utils.scm b/tests/build-utils.scm
index 03216f9a35..46fe8ea2c0 100644
--- a/tests/build-utils.scm
+++ b/tests/build-utils.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2015, 2016, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,11 +20,14 @@
 (define-module (test-build-utils)
   #:use-module (guix tests)
   #:use-module (guix build utils)
+  #:use-module ((gnu build bootloader)
+                #:select (invoke/quiet))
   #:use-module ((guix utils)
                 #:select (%current-system call-with-temporary-directory))
   #:use-module (gnu packages)
   #:use-module (gnu packages bootstrap)
   #:use-module (srfi srfi-34)
+  #:use-module (srfi srfi-35)
   #:use-module (srfi srfi-64)
   #:use-module (rnrs io ports)
   #:use-module (ice-9 popen))
@@ -123,5 +126,22 @@
            (and (zero? (close-pipe pipe))
                 str)))))))
 
+(test-assert "invoke/quiet, success"
+  (begin
+    (invoke/quiet "true")
+    #t))
+
+(test-assert "invoke/quiet, failure"
+  (guard (c ((message-condition? c)
+             (string-contains (condition-message c) "This is an error.")))
+    (invoke/quiet "sh" "-c" "echo This is an error. ; false")
+    #f))
+
+(test-assert "invoke/quiet, failure, message on stderr"
+  (guard (c ((message-condition? c)
+             (string-contains (condition-message c)
+                              "This is another error.")))
+    (invoke/quiet "sh" "-c" "echo This is another error. >&2 ; false")
+    #f))
 
 (test-end)