Skip to content

Commit

Permalink
travis: add indentation check after running tests
Browse files Browse the repository at this point in the history
  • Loading branch information
jef-n committed Dec 4, 2015
1 parent 7e3dc30 commit 0d5d3bc
Show file tree
Hide file tree
Showing 5 changed files with 82 additions and 1 deletion.
2 changes: 1 addition & 1 deletion ci/travis/linux/after_script.sh
@@ -1 +1 @@
cat '/tmp/ctest-important.log'
[ -r /tmp/ctest-important.log ] && cat /tmp/ctest-important.log
4 changes: 4 additions & 0 deletions ci/travis/linux/before_install.sh
Expand Up @@ -56,8 +56,12 @@ sudo apt-get install --force-yes --no-install-recommends --no-install-suggests \
xfonts-base \
xfonts-scalable \
xvfb \
python-pip \
flip \
postgresql-9.1-postgis-2.1/precise # from ubuntugis-unstable, not pgdg

sudo -H pip install autopep8 # TODO when switching to trusty or above: replace python-pip with python-autopep8

#update clang
sudo apt-get install --force-yes llvm-3.7 llvm-3.7-dev clang-3.7 libstdc++-4.9-dev
export CXX="clang++-3.7"
Expand Down
1 change: 1 addition & 0 deletions ci/travis/linux/install.sh
Expand Up @@ -10,6 +10,7 @@ cmake -DWITH_SERVER=ON \
-DENABLE_PGTEST=ON \
-DWITH_QWTPOLAR=OFF \
-DWITH_APIDOC=ON \
-DWITH_ASTYLE=ON \
-DWITH_PYSPATIALITE=ON \
-DGRASS_PREFIX7=/usr/lib/grass70 \
-DGRASS_INCLUDE_DIR7=/usr/lib/grass70/include ..
72 changes: 72 additions & 0 deletions scripts/verify-indentation.sh
@@ -0,0 +1,72 @@
#!/bin/bash

cd $(git rev-parse --show-toplevel)

export PATH=$PATH:$PWD/scripts

if [ -z "$TRAVIS_COMMIT_RANGE" ]; then
echo "No commit range given"
exit 0
fi

TRAVIS_COMMIT_RANGE=${TRAVIS_COMMIT_RANGE/.../..}

if ! type -p astyle.sh >/dev/null; then
echo astyle.sh not found
exit 1
fi

set -e

ASTYLEDIFF=/tmp/astyle.diff
>$ASTYLEDIFF

echo "Checking indentation in $TRAVIS_COMMIT_RANGE"
echo "Checking indentation in $TRAVIS_COMMIT_RANGE" >>/tmp/ctest-important.log
git log $TRAVIS_COMMIT_RANGE >>/tmp/ctest-important.log 2>&1
git diff --name-only $TRAVIS_COMMIT_RANGE >>/tmp/ctest-important.log 2>&1

git diff --name-only $TRAVIS_COMMIT_RANGE | while read f
do
echo "Checking $f" >>/tmp/ctest-important.log
case "$f" in
src/core/gps/qextserialport/*|src/plugins/dxf2shp_converter/dxflib/src/*|src/plugins/globe/osgEarthQt/*|src/plugins/globe/osgEarthUtil/*)
echo $f skipped
continue
;;

*.cpp|*.c|*.h|*.cxx|*.hxx|*.c++|*.h++|*.cc|*.hh|*.C|*.H|*.sip|*.py)
;;

*)
continue
;;
esac

m=$f.prepare
cp "$f" "$m"
astyle.sh "$f"
if diff -u "$m" "$f" >>$ASTYLEDIFF; then
rm $m
else
echo "File $f needs indentation"
fi
done

if [ -s "$ASTYLEDIFF" ]; then
echo
echo "Required indentation updates:"
cat "$ASTYLEDIFF"

cat <<EOF
Tips to prevent and resolve:
* Enable WITH_ASTYLE in your cmake configuration
* Use scripts/astyle.sh file to fix the now badly indented files
* Consider using scripts/prepare-commit.sh as pre-commit hook to avoid this
in the future (ln -s scripts/prepare-commit.sh .git/hooks/pre-commit) or
run it manually before each commit.
EOF

exit 1
fi
4 changes: 4 additions & 0 deletions tests/CMakeLists.txt
Expand Up @@ -2,3 +2,7 @@ IF (ENABLE_TESTS)
ADD_SUBDIRECTORY(src)
ADD_SUBDIRECTORY(bench)
ENDIF (ENABLE_TESTS)

IF(WITH_ASTYLE)
ADD_TEST(qgis_indentation ${CMAKE_SOURCE_DIR}/scripts/verify-indentation.sh)
ENDIF(WITH_ASTYLE)

1 comment on commit 0d5d3bc

@m-kuhn
Copy link
Member

@m-kuhn m-kuhn commented on 0d5d3bc Dec 4, 2015

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice

Please sign in to comment.