summary refs log tree commit diff
path: root/tests/guix-lint.sh
diff options
context:
space:
mode:
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 0000000000..5623d53ce5
--- /dev/null
+++ b/tests/guix-lint.sh
@@ -0,0 +1,75 @@
+# GNU Guix --- Functional package management for GNU
+# Copyright © 2014 Cyril Roelandt <tipecaml@gmail.com>
+#
+# This file is part of GNU Guix.
+#
+# GNU 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.
+#
+# GNU 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 GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+#
+# Test the `guix lint' command-line utility.
+#
+
+guix lint --version
+
+module_dir="t-guix-lint-$$"
+mkdir "$module_dir"
+trap "rm -rf $module_dir" EXIT
+
+
+cat > "$module_dir/foo.scm"<<EOF
+(define-module (foo)
+  #:use-module (guix packages)
+  #:use-module (gnu packages base))
+
+(define-public dummy
+  (package (inherit hello)
+    (name "dummy")
+    (version "42")
+    (synopsis "dummy package")
+    (description "dummy package only used for testing purposes.")))
+EOF
+
+export GUIX_PACKAGE_PATH=$module_dir
+export GUIX_PACKAGE_PATH
+
+grep_warning ()
+{
+    res=`echo "$1" | grep -E -c "(synopsis|description) should"`
+    echo $res
+}
+
+# Three issues with the dummy package:
+# 1) the synopsis starts with the package name;
+# 2) the synopsis starts with a lower-case letter;
+# 3) the description starts with a lower-case letter.
+
+out=`guix lint dummy 2>&1`
+if [ `grep_warning "$out"` -ne 3 ]
+then false; else true; fi
+
+out=`guix lint -c synopsis dummy 2>&1`
+if [ `grep_warning "$out"` -ne 2 ]
+then false; else true; fi
+
+out=`guix lint -c description dummy 2>&1`
+if [ `grep_warning "$out"` -ne 1 ]
+then false; else true; fi
+
+out=`guix lint -c description,synopsis dummy 2>&1`
+if [ `grep_warning "$out"` -ne 3 ]
+then false; else true; fi
+
+if guix lint -c synopsis,invalid-checker dummy 2>&1 | \
+   grep -q 'invalid-checker: invalid checker'
+then true; else false; fi