gnu: gimp: Update to 2.8.14.
[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")
791e0126 40 (description "dummy package. Only used for testing purposes.")))
dd7c013d
CR
41EOF
42
c8af8572 43GUIX_PACKAGE_PATH="$module_dir"
dd7c013d
CR
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;
791e0126 55# 3) the description has a single space following the end-of-sentence period.
dd7c013d
CR
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