guix lint: add the --checkers option.
[jackhill/guix/guix.git] / tests / guix-lint.sh
CommitLineData
dd7c013d
CR
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