summaryrefslogtreecommitdiffstats
path: root/src/spdk/.githooks/pre-push
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 18:24:20 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 18:24:20 +0000
commit483eb2f56657e8e7f419ab1a4fab8dce9ade8609 (patch)
treee5d88d25d870d5dedacb6bbdbe2a966086a0a5cf /src/spdk/.githooks/pre-push
parentInitial commit. (diff)
downloadceph-483eb2f56657e8e7f419ab1a4fab8dce9ade8609.tar.xz
ceph-483eb2f56657e8e7f419ab1a4fab8dce9ade8609.zip
Adding upstream version 14.2.21.upstream/14.2.21upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rwxr-xr-xsrc/spdk/.githooks/pre-push138
1 files changed, 138 insertions, 0 deletions
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