Add a few automated tests.

This commit is contained in:
Lars Brinkhoff 2016-05-10 14:10:36 +02:00
parent d45e89e7ac
commit 563fc66cbd
2 changed files with 46 additions and 0 deletions

1
.travis.yml Normal file
View File

@ -0,0 +1 @@
script: sh tests.sh

45
tests.sh Normal file
View File

@ -0,0 +1,45 @@
UPSTREAM=https://github.com/larsbrinkhoff/awesome-cpus
MAX_DIR_SIZE=27000
error() {
echo
echo "ERROR: $1"
exit 1
}
test_directory_size() {
echo -n "Checking that no directory is too large... "
git submodule deinit . > /dev/null
du -s * | while read i; do
set $i
if test "$1" -gt $MAX_DIR_SIZE; then
error "The $2 directory is too large"
fi
done
echo OK
}
directories_in_commit() {
git show --name-only --format=format: "$1" | grep / | wc -l
}
test_commits() {
echo -n "Checking that each commit touches only one directory... "
git remote add github-upstream $UPSTREAM
git log --format="format:%H%n" origin/master..HEAD | while read i; do
if test `directories_in_commit "$i"` -gt 1; then
h=`echo "$i" | cut -c1-7`
error "Commit $h touches more than one directory."
fi
done
git remote remove github-upstream
echo OK
}
test_directory_size
test_commits