ae7b5890ef
The script probably meant to execute make with $(nproc), but executed it with ${nproc} instead. "nproc" was not defined, evaluated to nothing, and -j without integer spawned unlimited number of processes, which was slow. While here, also use sysctl -a | grep -E -i 'hw.ncpu' to get the number of cores on BSD. That's what we already do in autobuild.sh. Fixes #881 Change-Id: I8b07a2c28c4834b5dfb1c1bfa66d2b696d85720f Reported-by: Jan Kryl <jan.kryl@mayadata.io> Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/463179 Reviewed-by: Jan Kryl <jan.kryl@mayadata.io> Reviewed-by: Paul Luse <paul.e.luse@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
139 lines
3.8 KiB
Bash
Executable File
139 lines
3.8 KiB
Bash
Executable File
#!/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 $(sysctl -a | grep -E -i 'hw.ncpu' | awk '{print $2}')"
|
|
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
|