spot/tests/sanity/80columns.test
2020-07-13 16:30:29 +02:00

72 lines
2.2 KiB
Bash
Executable file

#! /bin/sh
# -*- coding: utf-8 -*-
# Copyright (C) 2012, 2016-2017, 2019-2020 Laboratoire de Recherche et
# Développement de l'Epita (LRDE).
# Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6
# (LIP6), département Systèmes Répartis Coopératifs (SRC), Université
# Pierre et Marie Curie.
#
# This file is part of Spot, a model checking library.
#
# Spot 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.
#
# Spot 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 this program. If not, see <http://www.gnu.org/licenses/>.
# Check that all files use at most 80 columns.
set -e
rm -f failures.80
LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8
export LANG LC_ALL
if [ "`echo '{r₁|r₂|r₃}' | wc -m`" != 11 ]; then
# The current locale does not grok unicode.
# We still run this test, but only on lines that are purely ascii.
LANG=C LC_ALL=C
export LANG LC_ALL
x='[^ -~]' # This blank is a tab.
else
x='.'
fi
x="$x$x$x$x$x$x$x$x$x" # 9x
x="$x$x$x$x$x$x$x$x$x" # 81x
for dir in "${srcdir-.}/../../spot" "${srcdir-.}/../../bin" "${srcdir-.}/.."; do
find "$dir" \( -name "${1-*}.hh" \
-o -name "${1-*}.hxx" \
-o -name "${1-*}.cc" \
-o -name "${1-*}.py" \
-o -name "${1-*}.test" \) \
-a -not -path '*.dir/*' \
-a -type f -a -print |
while read file; do
if (expand $file | grep -q $x) 2>/dev/null; then
if grep 'GNU Bison' "$file" >/dev/null ||
grep '/robin-hood-hashing' "$file" >/dev/null ||
grep 'generated by flex' "$file" >/dev/null ; then
:
else
echo "$file" >>failures.80
fi
fi
done
done
if test -f failures.80; then
echo "The following files contain lines with more than 80 characters:"
cat failures.80
rm failures.80
exit 1;
fi