summaryrefslogtreecommitdiff
path: root/tests/guix-lint.sh
diff options
context:
space:
mode:
authorCyril Roelandt <tipecaml@gmail.com>2014-10-12 01:58:29 +0200
committerCyril Roelandt <tipecaml@gmail.com>2014-10-16 00:50:27 +0200
commitdd7c013d4be0fea8db61c909f5ba6f877c143fd3 (patch)
tree9af11d891f6eb2d6650139f0641849a20fd7624f /tests/guix-lint.sh
parent51861587c670c390b3420f0da6a86111b386f750 (diff)
guix lint: add the --checkers option.
* guix/scripts/lint.scm: add the "--checkers" option. * doc/guix.texi (Invoking guix lint): Document it. * tests/guix-lint.sh: New file * Makefile.am (SCM_TESTS): Add it.
Diffstat (limited to 'tests/guix-lint.sh')
-rw-r--r--tests/guix-lint.sh75
1 files changed, 75 insertions, 0 deletions
diff --git a/tests/guix-lint.sh b/tests/guix-lint.sh
new file mode 100644
index 00000000000..5623d53ce50
--- /dev/null
+++ b/tests/guix-lint.sh
@@ -0,0 +1,75 @@
1# GNU Guix --- Functional package management for GNU
2# Copyright © 2014 Cyril Roelandt <tipecaml@gmail.com>
3#
4# This file is part of GNU Guix.
5#
6# GNU Guix is free software; you can redistribute it and/or modify it
7# under the terms of the GNU General Public License as published by
8# the Free Software Foundation; either version 3 of the License, or (at
9# your option) any later version.
10#
11# GNU Guix is distributed in the hope that it will be useful, but
12# WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14# GNU General Public License for more details.
15#
16# You should have received a copy of the GNU General Public License
17# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18
19#
20# Test the `guix lint' command-line utility.
21#
22
23guix lint --version
24
25module_dir="t-guix-lint-$$"
26mkdir "$module_dir"
27trap "rm -rf $module_dir" EXIT
28
29
30cat > "$module_dir/foo.scm"<<EOF
31(define-module (foo)
32 #:use-module (guix packages)
33 #:use-module (gnu packages base))
34
35(define-public dummy
36 (package (inherit hello)
37 (name "dummy")
38 (version "42")
39 (synopsis "dummy package")
40 (description "dummy package only used for testing purposes.")))
41EOF
42
43export GUIX_PACKAGE_PATH=$module_dir
44export GUIX_PACKAGE_PATH
45
46grep_warning ()
47{
48 res=`echo "$1" | grep -E -c "(synopsis|description) should"`
49 echo $res
50}
51
52# Three issues with the dummy package:
53# 1) the synopsis starts with the package name;
54# 2) the synopsis starts with a lower-case letter;
55# 3) the description starts with a lower-case letter.
56
57out=`guix lint dummy 2>&1`
58if [ `grep_warning "$out"` -ne 3 ]
59then false; else true; fi
60
61out=`guix lint -c synopsis dummy 2>&1`
62if [ `grep_warning "$out"` -ne 2 ]
63then false; else true; fi
64
65out=`guix lint -c description dummy 2>&1`
66if [ `grep_warning "$out"` -ne 1 ]
67then false; else true; fi
68
69out=`guix lint -c description,synopsis dummy 2>&1`
70if [ `grep_warning "$out"` -ne 3 ]
71then false; else true; fi
72
73if guix lint -c synopsis,invalid-checker dummy 2>&1 | \
74 grep -q 'invalid-checker: invalid checker'
75then true; else false; fi