Fix #3: ensure gitversion produces reliable versioning info across all branches

This commit is contained in:
2015-01-10 18:05:39 -08:00
parent 98740ba3aa
commit 7ce5fabce7
10 changed files with 462 additions and 366 deletions

61
tests/test_gitversion.sh Normal file
View File

@@ -0,0 +1,61 @@
#!/bin/bash
BASEDIR=$(pwd)
function die
{
echo "$1"
exit 1
}
function shunittest_gitversion_use_correct_tag
{
tdir=$(mktemp -d)
trap "rm -fr ${tdir}" EXIT
cd ${tdir}
git init .
touch README
git add README
git commit -m 'test' README
git tag -a -m 1.0-0 build,1.0,0
${BASEDIR}/gitversion.sh > version.sh
. version.sh
[[ "$MAJOR" == "1.0" ]] || die "MAJOR should be 1.0, not $MAJOR"
[[ "$BUILD" == "0" ]] || die "BUILD should be 0, not $BUILD"
git checkout -b branch1
echo 'This is a meaningless change' > README
git commit -m 'edited readme' README
git tag -a -m 2.0dev-0 build,2.0dev,0
${BASEDIR}/gitversion.sh > version.sh
. version.sh
[[ "$MAJOR" == "2.0dev" ]] || die "MAJOR should be 2.0dev, not $MAJOR"
[[ "$BUILD" == "0" ]] || die "BUILD should be 0, not $BUILD"
git checkout master
${BASEDIR}/gitversion.sh > version.sh
. version.sh
[[ "$MAJOR" == "1.0" ]] || die "MAJOR should be 1.0, not $MAJOR"
[[ "$BUILD" == "0" ]] || die "BUILD should be 0, not $BUILD"
}
function shunittest_gitversion_correct_rebuilding
{
tdir=$(mktemp -d)
trap "rm -fr ${tdir}" EXIT
cd ${tdir}
git init .
touch README
git add README
git commit -m 'test' README
git tag -a -m 1.0-0 build,1.0,0
${BASEDIR}/gitversion.sh > version.sh
. version.sh
[[ "$REBUILDING" == "0" ]] || die "REBUILDING should be 0, not $REBUILDING"
echo 'small meaningless change' > README
git commit -m 'test 2' README
${BASEDIR}/gitversion.sh > version.sh
. version.sh
[[ "$REBUILDING" == "1" ]] || die "REBUILDING should be 1, not $REBUILDING"
}