Commit dd3ac6b4 authored by Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz
Browse files

Check for missing Copyright blurbs, and add them.

* src/sanity/style.test: Check for missing Copyrights blurbs.
* src/sanity/Makefile.am: Run style.test before includes.test.
* iface/gspn/dcswave.test, iface/gspn/dcswaveeltl.test,
iface/gspn/dcswavefm.test, iface/gspn/dcswaveltl.test,
iface/gspn/simple.test, iface/gspn/udcsefm.test,
iface/gspn/udcseltl.test, iface/gspn/udcsfm.test,
iface/gspn/udcsltl.test, iface/nips/nipstest/dotty.test,
iface/nips/nipstest/emptiness.test, src/eltltest/acc.test,
src/eltltest/nfa.test, src/saba/sabacomplementtgba.cc,
src/sabatest/sabacomplementtgba.cc, src/tgbatest/eltl2tgba.test,
src/tgbatest/taatgba.test: Add missing Copyright blurb.
parent 91fee65a
2010-01-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
Check for missing Copyright blurbs, and add them.
* src/sanity/style.test: Check for missing Copyrights blurbs.
* src/sanity/Makefile.am: Run style.test before includes.test.
* iface/gspn/dcswave.test, iface/gspn/dcswaveeltl.test,
iface/gspn/dcswavefm.test, iface/gspn/dcswaveltl.test,
iface/gspn/simple.test, iface/gspn/udcsefm.test,
iface/gspn/udcseltl.test, iface/gspn/udcsfm.test,
iface/gspn/udcsltl.test, iface/nips/nipstest/dotty.test,
iface/nips/nipstest/emptiness.test, src/eltltest/acc.test,
src/eltltest/nfa.test, src/saba/sabacomplementtgba.cc,
src/sabatest/sabacomplementtgba.cc, src/tgbatest/eltl2tgba.test,
src/tgbatest/taatgba.test: Add missing Copyright blurb.
2010-01-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
* NEWS: More text.
......
#! /bin/sh
# Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6),
# dpartement Systmes Rpartis Coopratifs (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 2 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 Spot; see the file COPYING. If not, write to the Free
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
. ./defs || exit 1
......
#! /bin/sh
# Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6),
# dpartement Systmes Rpartis Coopratifs (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 2 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 Spot; see the file COPYING. If not, write to the Free
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
. ./defs || exit 1
......
#! /bin/sh
# Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6),
# dpartement Systmes Rpartis Coopratifs (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 2 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 Spot; see the file COPYING. If not, write to the Free
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
. ./defs || exit 1
......
#! /bin/sh
# Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6),
# dpartement Systmes Rpartis Coopratifs (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 2 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 Spot; see the file COPYING. If not, write to the Free
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
. ./defs || exit 1
......
#! /bin/sh
# Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6),
# dpartement Systmes Rpartis Coopratifs (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 2 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 Spot; see the file COPYING. If not, write to the Free
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
. ./defs || exit 1
......
#! /bin/sh
# Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6),
# dpartement Systmes Rpartis Coopratifs (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 2 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 Spot; see the file COPYING. If not, write to the Free
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
. ./defs || exit 1
......
#! /bin/sh
# Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6),
# dpartement Systmes Rpartis Coopratifs (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 2 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 Spot; see the file COPYING. If not, write to the Free
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
. ./defs || exit 1
......
#! /bin/sh
# Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6),
# dpartement Systmes Rpartis Coopratifs (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 2 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 Spot; see the file COPYING. If not, write to the Free
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
. ./defs || exit 1
......
#! /bin/sh
# Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6),
# dpartement Systmes Rpartis Coopratifs (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 2 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 Spot; see the file COPYING. If not, write to the Free
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
. ./defs || exit 1
......
#!/bin/sh
# Copyright (C) 2008 Laboratoire de Recherche et Développement de
# l'Epita (LRDE)
#
# 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 2 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 Spot; see the file COPYING. If not, write to the Free
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
. ./defs || exit 1
......
#!/bin/sh
# Copyright (C) 2008 Laboratoire de Recherche et Dveloppement de
# l'Epita (LRDE)
#
# 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 2 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 Spot; see the file COPYING. If not, write to the Free
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
. ./defs || exit 1
......
#!/bin/sh
# Copyright (C) 2009 Laboratoire de Recherche et Développement
# de l'Epita (LRDE).
#
# 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 2 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 Spot; see the file COPYING. If not, write to the Free
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
. ./defs || exit 1
......
#!/bin/sh
# Copyright (C) 2009 Laboratoire de Recherche et Développement
# de l'Epita (LRDE).
#
# 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 2 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 Spot; see the file COPYING. If not, write to the Free
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
. ./defs || exit 1
......
// Copyright (C) 2009, 2010 Laboratoire de Recherche et Développement
// Copyright (C) 2009, 2010 Laboratoire de Recherche et Développement
// de l'Epita (LRDE).
//
// This file is part of Spot, a model checking library.
......
// Copyright (C) 2009 Laboratoire de Recherche et Dveloppement
// de l'Epita (LRDE).
//
// 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 2 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 Spot; see the file COPYING. If not, write to the Free
// Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
// 02111-1307, USA.
#include <iostream>
#include <cstring>
......
......@@ -27,17 +27,17 @@ AM_CXXFLAGS = $(WARNING_CXXFLAGS)
# Run `make TESTHEADER=foo.hh check' if you want to check only one
# header.
check-local:
CXX='$(CXX)' \
CPPFLAGS='$(AM_CPPFLAGS) $(CPPFLAGS)' \
CXXFLAGS='$(AM_CXXFLAGS) $(CXXFLAGS)' \
INCDIR='$(top_srcdir)/src' \
$(SHELL) $(srcdir)/includes.test $(TESTHEADER)
INCDIR='$(top_srcdir)/src' \
$(SHELL) $(srcdir)/80columns.test $(TESTHEADER)
INCDIR='$(top_srcdir)/src' \
$(SHELL) $(srcdir)/style.test $(TESTHEADER)
top_srcdir='$(top_srcdir)' \
$(PERL) $(srcdir)/readme.test
CXX='$(CXX)' \
CPPFLAGS='$(AM_CPPFLAGS) $(CPPFLAGS)' \
CXXFLAGS='$(AM_CXXFLAGS) $(CXXFLAGS)' \
INCDIR='$(top_srcdir)/src' \
$(SHELL) $(srcdir)/includes.test $(TESTHEADER)
# Ensure we have not forgotten to include an header.
installcheck-local:
......
......@@ -27,158 +27,174 @@ for dir in "${INCDIR-..}" "${INCDIR-..}"/../iface; do
find "$dir" \( -name "${1-*}.hh" \
-o -name "${1-*}.hxx" \
-o -name "${1-*}.cc" \) \
-o -name "${1-*}.cc" \
-o -name "${1-*}.test" \) \
-a -type f -a -print |
while read file; do
if grep 'GNU Bison' "$file" >/dev/null ||
grep 'generated by flex' "$file" >/dev/null ; then
continue
fi
# Skip the files used by sanity.
case $file in
*incltest.cc) continue;;
esac
fail=false
# Check this before stripping comments and strings.
grep -i 'accepting cond' $file &&
diag 'accepting -> acceptance'
grep Copyright $file >/dev/null ||
diag "missing copyright"
# Strip comments and strings.
sed 's,[ ]*//.*,,;s,"[^"]*","",g' < $file > $tmp
grep '[ ]$' $tmp &&
diag 'Trailing whitespace.'
grep '[ ]if(' $tmp &&
diag 'Missing space after "if"'
case $file in
*.test);;
*)
grep '[ ]if(' $tmp &&
diag 'Missing space after "if"'
grep '[ ]if (.*).*{' $tmp &&
diag 'Opening { should be on its own line.'
grep '[ ]if (.*).*{' $tmp &&
diag 'Opening { should be on its own line.'
grep '[ ]if (.*).*;' $tmp &&
diag 'if body should be on another line.'
grep '[ ]if (.*).*;' $tmp &&
diag 'if body should be on another line.'
grep '[ ]else.*;' $tmp &&
diag 'else body should be on another line.'
grep '[ ]else.*;' $tmp &&
diag 'else body should be on another line.'
grep '[ ]while(' $tmp &&
diag 'Missing space after "while"'
grep '[ ]while(' $tmp &&
diag 'Missing space after "while"'
grep '[ ]while (.*).*{' $tmp &&
diag 'Opening { should be on its own line.'
grep '[ ]while (.*).*{' $tmp &&
diag 'Opening { should be on its own line.'
grep '[ ]while (.*).*[^)];' $tmp &&
diag 'while body should be on another line.'
grep '[ ]while (.*).*[^)];' $tmp &&
diag 'while body should be on another line.'
grep '[ ]for(' $tmp &&
diag 'Missing space after "for"'
grep '[ ]for(' $tmp &&
diag 'Missing space after "for"'
grep '[ ]for (.*).*{' $tmp &&
diag 'Opening { should be on its own line.'
grep '[ ]for (.*).*{' $tmp &&
diag 'Opening { should be on its own line.'
grep '[ ]for (.*;.*;.*).*;' $tmp &&
diag 'for body should be on another line.'
grep '[ ]for (.*;.*;.*).*;' $tmp &&
diag 'for body should be on another line.'
grep '[ ]switch(' $tmp &&
diag 'Missing space after "switch"'
grep '[ ]switch(' $tmp &&
diag 'Missing space after "switch"'
grep '[ ]switch (.*).*{' $tmp &&
diag 'Opening { should be on its own line.'
grep '[ ]switch (.*).*{' $tmp &&
diag 'Opening { should be on its own line.'
grep 'namespace .*{' $tmp &&
diag 'Opening { should be on its own line.'
grep 'namespace .*{' $tmp &&
diag 'Opening { should be on its own line.'
grep 'class .*{' $tmp &&
diag 'Opening { should be on its own line.'
grep 'class .*{' $tmp &&
diag 'Opening { should be on its own line.'
grep '( ' $tmp &&
diag 'No space after opening (.'
grep '( ' $tmp &&
diag 'No space after opening (.'
grep ' )' $tmp &&
diag 'No space before closing ).'
grep ' )' $tmp &&
diag 'No space before closing ).'
grep '! ' $tmp &&
diag 'No space after unary operators (!).'
grep '! ' $tmp &&
diag 'No space after unary operators (!).'
grep ",[^ \t\"%']" $tmp &&
diag 'Space after coma.'
grep ",[^ \t\"%']" $tmp &&
diag 'Space after coma.'
grep '[^ ]&&[^ ]' $tmp &&
diag 'Space arround binary operators.'
grep '[^ ]&&[^ ]' $tmp &&
diag 'Space arround binary operators.'
grep '[^ ]||[^ ]' $tmp &&
diag 'Space arround binary operators.'
grep '[^ ]||[^ ]' $tmp &&
diag 'Space arround binary operators.'
grep '[ ]default:[^:].*;' $tmp &&
diag 'Label should be on their own line.'
grep '[ ]default:[^:].*;' $tmp &&
diag 'Label should be on their own line.'
grep '[ ]case.*:[^:].*;' $tmp &&
diag 'Label should be on their own line.'
grep '[ ]case.*:[^:].*;' $tmp &&
diag 'Label should be on their own line.'
grep '[ ];' $tmp &&
diag 'No space before semicolon.'
grep '[ ];' $tmp &&
diag 'No space before semicolon.'
grep -v 'for (.*;;)' $tmp | grep ';[^ ")]' &&
diag 'Must have space or newline after semicolon.'
grep -v 'for (.*;;)' $tmp | grep ';[^ ")]' &&
diag 'Must have space or newline after semicolon.'
grep '}.*}' $tmp &&
diag 'No two } on the same line.'
grep '}.*}' $tmp &&
diag 'No two } on the same line.'
grep '{.*{' $tmp &&
diag 'No two { on the same line.'
grep '{.*{' $tmp &&
diag 'No two { on the same line.'
grep 'delete[ ]*[(][^(]*[)];' $tmp &&
diag 'No useless parentheses after delete.'
grep 'delete[ ]*[(][^(]*[)];' $tmp &&
diag 'No useless parentheses after delete.'
grep 'return[ ]*[(][^(]*[)];' $tmp &&
diag 'No useless parentheses after return.'
grep 'return[ ]*[(][^(]*[)];' $tmp &&
diag 'No useless parentheses after return.'
grep 'NULL' $tmp &&
diag 'Use 0 instead of NULL. NULL is not portable.'
grep 'NULL' $tmp &&
diag 'Use 0 instead of NULL. NULL is not portable.'
# std::list::size() can be O(n). Better use empty() whenever
# possible, even for other containers.
egrep '(->|[.])size\(\) [=!]= 0|![a-zA-Z0-9_]*(->|[.])size\(\)|(if |while |assert)\([a-zA-Z0-9_]*(->|[.])size\(\)\)' $tmp &&
diag 'Prefer empty() to check emptiness.'
# std::list::size() can be O(n). Better use empty() whenever
# possible, even for other containers.
egrep '(->|[.])size\(\) [=!]= 0|![a-zA-Z0-9_]*(->|[.])size\(\)|(if |while |assert)\([a-zA-Z0-9_]*(->|[.])size\(\)\)' $tmp &&
diag 'Prefer empty() to check emptiness.'
egrep '^[^=]*([+][+]|--);' $tmp &&
diag 'Take good habits: use ++i instead of i++ when you have the choice.'
egrep '^[^=]*([+][+]|--);' $tmp &&
diag 'Take good habits: use ++i instead of i++ when you have the choice.'
grep '[^a-zA-Z0-9_](\*[a-zA-Z0-9_]*)\.' $tmp &&
diag 'Use "x->y", not "(*x).y"'
grep '[^a-zA-Z0-9_](\*[a-zA-Z0-9_]*)\.' $tmp &&
diag 'Use "x->y", not "(*x).y"'
grep 'std::hash' $tmp &&
diag 'use Sgi:: for hash and hash_map'
grep 'std::hash' $tmp &&
diag 'use Sgi:: for hash and hash_map'
grep 'Sgi::[^h]' $tmp &&
diag 'Sgi:: is for hash and hash_map only'
grep 'Sgi::[^h]' $tmp &&
diag 'Sgi:: is for hash and hash_map only'
res=`perl -ne '$/ = undef;
print "$&\n"
while /if \((.*)(\s*==\s*0)?\)\s*delete(\[\])?\s+\1;(?!\s+else)/g' $tmp`
if test -n "$res"; then
echo "$res"
diag 'No "if (x)" required before "delete x;".'
fi
res=`perl -ne '$/ = undef;
print "$&\n"
while /if \((.*)(\s*==\s*0)?\)\s*delete(\[\])?\s+\1;(?!\s+else)/g' $tmp`
if test -n "$res"; then
echo "$res"
diag 'No "if (x)" required before "delete x;".'
fi
case $file in