From a7ae153a468816132fb71d02a8d2000c27461adb Mon Sep 17 00:00:00 2001 From: mayeut Date: Fri, 9 Oct 2015 21:20:54 +0200 Subject: [PATCH] ABI Check --- tools/abi-tracker/openjpeg.json | 3 +- tools/travis-ci/abi-check.sh | 64 +++++++++++++++++++++------------ 2 files changed, 43 insertions(+), 24 deletions(-) diff --git a/tools/abi-tracker/openjpeg.json b/tools/abi-tracker/openjpeg.json index 67beb33a..8d83d222 100644 --- a/tools/abi-tracker/openjpeg.json +++ b/tools/abi-tracker/openjpeg.json @@ -2,7 +2,6 @@ "Name": "openjpeg", "Title": "OpenJPEG", "SourceUrl": "https://github.com/uclouvain/openjpeg/tags", - "Git": "https://github.com/uclouvain/openjpeg.git", "Maintainer": "Antonin D.", "MaintainerUrl": "http://www.openjpeg.org/", "Package": "version.", @@ -11,7 +10,7 @@ { "Number": "current", "Installed": "installed/openjpeg/current", - "Source": "@OPJ_SRC_DIR@", + "Source": "src/openjpeg/current", "Changelog": "On", "HeadersDiff": "On", "PkgDiff": "Off", diff --git a/tools/travis-ci/abi-check.sh b/tools/travis-ci/abi-check.sh index afdc251b..a5814d37 100755 --- a/tools/travis-ci/abi-check.sh +++ b/tools/travis-ci/abi-check.sh @@ -13,33 +13,53 @@ if [ "${OPJ_CI_ABI_CHECK:-}" != "1" ]; then exit 0 fi +OPJ_UPLOAD_ABI_REPORT=0 +OPJ_LIMIT_ABI_BUILDS="-limit 2" +if [ "${TRAVIS_REPO_SLUG:-}" != "" ]; then + if [ "$(echo "${TRAVIS_REPO_SLUG}" | sed 's/\(^.*\)\/.*/\1/')" == "uclouvain" ] && [ "${TRAVIS_PULL_REQUEST:-}" == "false" ]; then + # Upload report + OPJ_UPLOAD_ABI_REPORT=1 + # Build full report + OPJ_LIMIT_ABI_BUILDS= + fi +fi + OPJ_SOURCE_DIR=$(cd $(dirname $0)/../.. && pwd) -if [ ! -d ${HOME}/abi-check ]; then - mkdir ${HOME}/abi-check -fi +mkdir ${HOME}/abi-check cd ${HOME}/abi-check +# Let's get tools not available with apt +mkdir tools +wget -qO - https://tools.ietf.org/tools/rfcdiff/rfcdiff-1.42.tgz | tar -xz +mv rfcdiff-1.42 ${PWD}/tools/rfcdiff +wget -qO - https://github.com/lvc/installer/archive/0.2.tar.gz | tar -xz +mkdir ${PWD}/tools/abi-tracker +make -C installer-0.2 install prefix=${PWD}/tools/abi-tracker target=abi-tracker +rm -rf installer-0.2 +export PATH=${PWD}/tools/rfcdiff:${PWD}/tools/abi-tracker/bin:$PATH +mkdir tracker +cp -f ${OPJ_SOURCE_DIR}/tools/abi-tracker/openjpeg.json ./tracker/openjpeg.json +cd tracker -if [ ! -f ${HOME}/abi-check/.restored ]; then - # Clean all if .restored is not present - touch not.empty - rm -rf ./* - # Let's get tools not available with apt - mkdir tools - wget -qO - https://tools.ietf.org/tools/rfcdiff/rfcdiff-1.42.tgz | tar -xz - mv rfcdiff-1.42 ${PWD}/tools/rfcdiff - wget -qO - https://github.com/lvc/installer/archive/0.2.tar.gz | tar -xz - mkdir ${PWD}/tools/abi-tracker - make -C installer-0.2 install prefix=${PWD}/tools/abi-tracker target=abi-tracker - mkdir tracker -fi +# Let's create all we need +abi-monitor ${OPJ_LIMIT_ABI_BUILDS} -get openjpeg.json +cp -rf ${OPJ_SOURCE_DIR} src/openjpeg/current +abi-monitor ${OPJ_LIMIT_ABI_BUILDS} -build openjpeg.json +abi-tracker -build openjpeg.json -cd tracker +EXIT_CODE=0 + +# Check API +abi-compliance-checker -l openjpeg -old $(find ./abi_dump/openjpeg/2.1 -name '*.dump') -new $(find ./abi_dump/openjpeg/current -name '*.dump') -header openjpeg.h -api -s || EXIT_CODE=1 # Check ABI -export PATH=${PWD}/../tools/rfcdiff:${PWD}/../tools/abi-tracker/bin:$PATH -sed -e "s/@OPJ_SOURCE_DIR@/${OPJ_SOURCE_DIR//\//\\/}/g" ${OPJ_SOURCE_DIR}/tools/abi-tracker/openjpeg.json > openjpeg.json -abi-monitor -get openjpeg.json -abi-monitor -build openjpeg.json -abi-tracker -build openjpeg.json +abi-compliance-checker -l openjpeg -old $(find ./abi_dump/openjpeg/2.1 -name '*.dump') -new $(find ./abi_dump/openjpeg/current -name '*.dump') -header openjpeg.h -abi -s || EXIT_CODE=1 + +rm -rf src installed + +if [ ${OPJ_UPLOAD_ABI_REPORT} -eq 1 ]; then + echo "TODO: Where to upload the report" +fi + +exit $EXIT_CODE -- 2.50.1