[dpdk-dev] scripts: support any legal git revisions as abi validation range
Commit Message
In addition to git tags, support validating abi between any legal
gitrevisions(7) syntaxes, such as "validate-abi.sh . -1 <target>"
"validate-abi.sh master mybrach <target>" etc in addition to
validating between tags. Makes it easier to run the validator
for in-development work.
Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
---
scripts/validate-abi.sh | 26 ++++++++++++++++----------
1 file changed, 16 insertions(+), 10 deletions(-)
Comments
On Wed, Dec 02, 2015 at 06:50:47PM +0200, Panu Matilainen wrote:
> In addition to git tags, support validating abi between any legal
> gitrevisions(7) syntaxes, such as "validate-abi.sh . -1 <target>"
> "validate-abi.sh master mybrach <target>" etc in addition to
> validating between tags. Makes it easier to run the validator
> for in-development work.
>
> Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
>
@@ -43,16 +43,15 @@ log() {
}
validate_tags() {
- git tag -l | grep -q "$TAG1"
- if [ $? -ne 0 ]
+
+ if [ -z "$HASH1" ]
then
- echo "$TAG1 is invalid"
+ echo "invalid revision: $TAG1"
return
fi
- git tag -l | grep -q "$TAG2"
- if [ $? -ne 0 ]
+ if [ -z "$HASH2" ]
then
- echo "$TAG2 is invalid"
+ echo "invalid revision: $TAG2"
return
fi
}
@@ -112,6 +111,9 @@ then
cleanup_and_exit 1
fi
+HASH1=$(git show -s --format=%H "$TAG1" -- 2> /dev/null)
+HASH2=$(git show -s --format=%H "$TAG2" -- 2> /dev/null)
+
# Make sure our tags exist
res=$(validate_tags)
if [ -n "$res" ]
@@ -120,6 +122,10 @@ then
cleanup_and_exit 1
fi
+# Make hashes available in output for non-local reference
+TAG1="$TAG1 ($HASH1)"
+TAG2="$TAG2 ($HASH2)"
+
ABICHECK=`which abi-compliance-checker 2>/dev/null`
if [ $? -ne 0 ]
then
@@ -152,7 +158,7 @@ cd $(dirname $0)/..
log "INFO" "Checking out version $TAG1 of the dpdk"
# Move to the old version of the tree
-git checkout $TAG1
+git checkout $HASH1
# Make sure we configure SHARED libraries
# Also turn off IGB and KNI as those require kernel headers to build
@@ -185,7 +191,7 @@ cd $TARGET/lib
log "INFO" "COLLECTING ABI INFORMATION FOR $TAG1"
for i in `ls *.so`
do
- $ABIDUMP $i -o $ABI_DIR/$i-ABI-0.dump -lver $TAG1
+ $ABIDUMP $i -o $ABI_DIR/$i-ABI-0.dump -lver $HASH1
done
cd ../..
@@ -194,7 +200,7 @@ git clean -f -d
git reset --hard
# Move to the new version of the tree
log "INFO" "Checking out version $TAG2 of the dpdk"
-git checkout $TAG2
+git checkout $HASH2
# Make sure we configure SHARED libraries
# Also turn off IGB and KNI as those require kernel headers to build
@@ -220,7 +226,7 @@ cd $TARGET/lib
log "INFO" "COLLECTING ABI INFORMATION FOR $TAG2"
for i in `ls *.so`
do
- $ABIDUMP $i -o $ABI_DIR/$i-ABI-1.dump -lver $TAG2
+ $ABIDUMP $i -o $ABI_DIR/$i-ABI-1.dump -lver $HASH2
done
cd ../..