From 0144eeafd1467937a379a7dc005bcb0579b0ae5e Mon Sep 17 00:00:00 2001 From: Thomas Monjalon Date: Wed, 2 Dec 2020 18:15:21 +0100 Subject: [PATCH] devtools: adjust verbosity of ABI check The scripts gen-abi.sh and check-abi.sh are updated to print error messages to stderr so they are likely never ignored. When called from test-meson-builds.sh, the standard messages on stdout can be more quiet depending on the verbosity settings. The beginning of the ABI check is announced in verbose mode. The commands are printed in very verbose mode. The check result details are available in verbose mode. Signed-off-by: Thomas Monjalon --- devtools/check-abi.sh | 20 ++++++++++---------- devtools/gen-abi.sh | 4 ++-- devtools/test-meson-builds.sh | 9 +++++++-- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/devtools/check-abi.sh b/devtools/check-abi.sh index ab6748cfbc..9835e346da 100755 --- a/devtools/check-abi.sh +++ b/devtools/check-abi.sh @@ -3,7 +3,7 @@ # Copyright (c) 2019 Red Hat, Inc. if [ $# != 2 ] && [ $# != 3 ]; then - echo "Usage: $0 refdir newdir [warnonly]" + echo "Usage: $0 refdir newdir [warnonly]" >&2 exit 1 fi @@ -13,23 +13,23 @@ warnonly=${3:-} ABIDIFF_OPTIONS="--suppr $(dirname $0)/libabigail.abignore --no-added-syms" if [ ! -d $refdir ]; then - echo "Error: reference directory '$refdir' does not exist." + echo "Error: reference directory '$refdir' does not exist." >&2 exit 1 fi incdir=$(find $refdir -type d -a -name include) if [ -z "$incdir" ] || [ ! -e "$incdir" ]; then - echo "WARNING: could not identify a include directory for $refdir, expect false positives..." + echo "WARNING: could not identify an include directory for $refdir, expect false positives..." >&2 else ABIDIFF_OPTIONS="$ABIDIFF_OPTIONS --headers-dir1 $incdir" fi if [ ! -d $newdir ]; then - echo "Error: directory to check '$newdir' does not exist." + echo "Error: directory to check '$newdir' does not exist." >&2 exit 1 fi incdir2=$(find $newdir -type d -a -name include) if [ -z "$incdir2" ] || [ ! -e "$incdir2" ]; then - echo "WARNING: could not identify a include directory for $newdir, expect false positives..." + echo "WARNING: could not identify an include directory for $newdir, expect false positives..." >&2 else ABIDIFF_OPTIONS="$ABIDIFF_OPTIONS --headers-dir2 $incdir2" fi @@ -46,23 +46,23 @@ for dump in $(find $refdir -name "*.dump"); do fi dump2=$(find $newdir -name $name) if [ -z "$dump2" ] || [ ! -e "$dump2" ]; then - echo "Error: can't find $name in $newdir" + echo "Error: cannot find $name in $newdir" >&2 error=1 continue fi abidiff $ABIDIFF_OPTIONS $dump $dump2 || { abiret=$? - echo "Error: ABI issue reported for 'abidiff $ABIDIFF_OPTIONS $dump $dump2'" + echo "Error: ABI issue reported for 'abidiff $ABIDIFF_OPTIONS $dump $dump2'" >&2 error=1 echo if [ $(($abiret & 3)) -ne 0 ]; then - echo "ABIDIFF_ERROR|ABIDIFF_USAGE_ERROR, this could be a script or environment issue." + echo "ABIDIFF_ERROR|ABIDIFF_USAGE_ERROR, this could be a script or environment issue." >&2 fi if [ $(($abiret & 4)) -ne 0 ]; then - echo "ABIDIFF_ABI_CHANGE, this change requires a review (abidiff flagged this as a potential issue)." + echo "ABIDIFF_ABI_CHANGE, this change requires a review (abidiff flagged this as a potential issue)." >&2 fi if [ $(($abiret & 8)) -ne 0 ]; then - echo "ABIDIFF_ABI_INCOMPATIBLE_CHANGE, this change breaks the ABI." + echo "ABIDIFF_ABI_INCOMPATIBLE_CHANGE, this change breaks the ABI." >&2 fi echo } diff --git a/devtools/gen-abi.sh b/devtools/gen-abi.sh index c44b0e228a..f15a3b9aaf 100755 --- a/devtools/gen-abi.sh +++ b/devtools/gen-abi.sh @@ -3,13 +3,13 @@ # Copyright (c) 2019 Red Hat, Inc. if [ $# != 1 ]; then - echo "Usage: $0 installdir" + echo "Usage: $0 installdir" >&2 exit 1 fi installdir=$1 if [ ! -d $installdir ]; then - echo "Error: install directory '$installdir' does not exist." + echo "Error: install directory '$installdir' does not exist." >&2 exit 1 fi diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh index 7280b7a93d..00e3d0b443 100755 --- a/devtools/test-meson-builds.sh +++ b/devtools/test-meson-builds.sh @@ -191,10 +191,15 @@ build () # install_target $builds_dir/$targetdir \ $(readlink -f $builds_dir/$targetdir/install) + echo "Checking ABI compatibility of $targetdir" >&$verbose + echo $srcdir/devtools/gen-abi.sh \ + $(readlink -f $builds_dir/$targetdir/install) >&$veryverbose $srcdir/devtools/gen-abi.sh \ - $(readlink -f $builds_dir/$targetdir/install) + $(readlink -f $builds_dir/$targetdir/install) >&$veryverbose + echo $srcdir/devtools/check-abi.sh $abirefdir/$targetdir \ + $(readlink -f $builds_dir/$targetdir/install) >&$veryverbose $srcdir/devtools/check-abi.sh $abirefdir/$targetdir \ - $(readlink -f $builds_dir/$targetdir/install) + $(readlink -f $builds_dir/$targetdir/install) >&$verbose fi } -- 2.20.1