diff options
Diffstat (limited to 'src/spdk/.githooks')
-rwxr-xr-x | src/spdk/.githooks/pre-commit | 28 | ||||
-rwxr-xr-x | src/spdk/.githooks/pre-push | 138 |
2 files changed, 166 insertions, 0 deletions
diff --git a/src/spdk/.githooks/pre-commit b/src/spdk/.githooks/pre-commit new file mode 100755 index 00000000..c0b46124 --- /dev/null +++ b/src/spdk/.githooks/pre-commit @@ -0,0 +1,28 @@ +#!/bin/sh +# +# Verify what is about to be committed. +# Called by "git commit" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message if +# it wants to stop the commit. + +rc=0 + +# Redirect output to stderr. +exec 1>&2 + +# If there are formatting errors, print the offending file names and fail. +if [ -x "./scripts/check_format.sh" ]; then + echo "Running check_format.sh ..." + "./scripts/check_format.sh" > check_format.log 2>&1 + rc=$? + if [ $rc -ne 0 ]; then + cat check_format.log + echo "" + echo "ERROR check_format.sh returned errors!" + echo "ERROR Fix the problem and use 'git add' to update your changes." + echo "ERROR See `pwd`/check_format.log for more information." + echo "" + fi +fi + +exit $rc diff --git a/src/spdk/.githooks/pre-push b/src/spdk/.githooks/pre-push new file mode 100755 index 00000000..cb9efb5b --- /dev/null +++ b/src/spdk/.githooks/pre-push @@ -0,0 +1,138 @@ +#!/bin/sh +# Verify what is about to be pushed. Called by "git +# push" after it has checked the remote status, but before anything has been +# pushed. If this script exits with a non-zero status nothing will be pushed. +# +# This hook is called with the following parameters: +# +# $1 -- Name of the remote to which the push is being done +# $2 -- URL to which the push is being done +# +# If pushing without using a named remote those arguments will be equal. + +# <local ref> <local sha1> <remote ref> <remote sha1> +# + +rc=0 +SYSTEM=`uname -s` + +# Redirect output to stderr. +exec 1>&2 + +if [ "$SYSTEM" = "FreeBSD" ]; then + MAKE="gmake MAKE=gmake -j ${nproc}" + COMP="clang" +else + MAKE="make -j ${nproc}" + COMP="gcc" +fi + +echo "Running make with $COMP ..." +echo "${MAKE} clean " > make.log +$MAKE clean >> make.log 2>&1 +echo "${MAKE} CONFIG_DEBUG=n CONFIG_WERROR=y " >> make.log +$MAKE CONFIG_DEBUG=n CONFIG_WERROR=y >> make.log 2>&1 +rc=$? +if [ $rc -ne 0 ]; then + tail -20 make.log + echo "" + echo "ERROR make returned errors!" + echo "ERROR Fix the problem and use 'git commit' to update your changes." + echo "ERROR See `pwd`/make.log for more information." + echo "" + exit $rc +fi + +echo "${MAKE} SKIP_DPDK_BUILD=1 clean " >> make.log +$MAKE clean SKIP_DPDK_BUILD=1 >> make.log 2>&1 +echo "${MAKE} CONFIG_DEBUG=y CONFIG_WERROR=y SKIP_DPDK_BUILD=1 " >> make.log +$MAKE CONFIG_DEBUG=y CONFIG_WERROR=y SKIP_DPDK_BUILD=1 >> make.log 2>&1 +rc=$? +if [ $rc -ne 0 ]; then + tail -20 make.log + echo "" + echo "ERROR make returned errors!" + echo "ERROR Fix the problem and use 'git commit' to update your changes." + echo "ERROR See `pwd`/make.log for more information." + echo "" + exit $rc +fi + +echo "Running unittest.sh ..." +echo "./test/unit/unittest.sh" >> make.log +"./test/unit/unittest.sh" >> make.log 2>&1 +rc=$? +if [ $rc -ne 0 ]; then + tail -20 make.log + echo "" + echo "ERROR unittest returned errors!" + echo "ERROR Fix the problem and use 'git commit' to update your changes." + echo "ERROR See `pwd`/make.log for more information." + echo "" + exit $rc +fi + +echo "$MAKE clean " >> make.log +$MAKE clean >> make.log 2>&1 + +if [ "$SYSTEM" = "FreeBSD" ]; then + echo + echo "Pushing to $1 $2" + exit $rc +fi + +if ! hash clang 2>/dev/null; then + echo "clang not found; skipping the clang tests" + echo + echo "Pushing to $1 $2" + exit $rc +fi + +echo "Running make with clang ..." +echo "make CONFIG_DEBUG=n CONFIG_WERROR=y CC=clang CXX=clang++ " >> make.log +$MAKE CONFIG_DEBUG=n CONFIG_WERROR=y CC=clang CXX=clang++ >> make.log 2>&1 +rc=$? +if [ $rc -ne 0 ]; then +tail -20 make.log + echo "" + echo "ERROR make CC=clang CXX=clang++ returned errors!" + echo "ERROR Fix the problem and use 'git commit' to update your changes." + echo "ERROR See `pwd`/make.log for more information." + echo "" + exit $rc +fi + +echo "make clean CC=clang CXX=clang++ SKIP_DPDK_BUILD=1 " >> make.log +$MAKE clean CC=clang CXX=clang++ SKIP_DPDK_BUILD=1 >> make.log 2>&1 +echo "make CONFIG_DEBUG=y CONFIG_WERROR=y CC=clang CXX=clang++ SKIP_DPDK_BUILD=1 " >> make.log +$MAKE CONFIG_DEBUG=y CONFIG_WERROR=y CC=clang CXX=clang++ SKIP_DPDK_BUILD=1 >> make.log 2>&1 +rc=$? +if [ $rc -ne 0 ]; then + tail -20 make.log + echo "" + echo "ERROR make CC=clang CXX=clang++ returned errors!" + echo "ERROR Fix the problem and use 'git commit' to update your changes." + echo "ERROR See `pwd`/make.log for more information." + echo "" + exit $rc +fi + +echo "Running unittest.sh ..." +echo "./test/unit/unittest.sh" >> make.log +"./test/unit/unittest.sh" >> make.log 2>&1 +rc=$? +if [ $rc -ne 0 ]; then + tail -20 make.log + echo "" + echo "ERROR unittest returned errors!" + echo "ERROR Fix the problem and use 'git commit' to update your changes." + echo "ERROR See `pwd`/make.log for more information." + echo "" + exit $rc +fi + +${MAKE} clean CC=clang CXX=clang++ 2> /dev/null + +echo "Pushing to $1 $2" + +exit $rc |