build: add automated build infrastructure
Change-Id: Ie929debaaa74b0d8460b508199e842a244e090fa Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
This commit is contained in:
parent
a56f73febb
commit
a65aafd006
36
autobuild.sh
Executable file
36
autobuild.sh
Executable file
@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
src=$(readlink -f $(dirname $0))
|
||||
out=$PWD
|
||||
|
||||
MAKEFLAGS=${MAKEFLAGS:--j16}
|
||||
DPDK_DIR=/usr/local/dpdk-2.1.0/x86_64-native-linuxapp-gcc
|
||||
|
||||
cd $src
|
||||
|
||||
scanbuild=''
|
||||
if hash scan-build; then
|
||||
scanbuild="scan-build -o $out/scan-build-tmp"
|
||||
fi
|
||||
|
||||
make $MAKEFLAGS clean
|
||||
time $scanbuild make $MAKEFLAGS DPDK_DIR=$DPDK_DIR
|
||||
|
||||
if [ -d $out/scan-build-tmp ]; then
|
||||
scanoutput=$(ls -1 $out/scan-build-tmp/)
|
||||
mv $out/scan-build-tmp/$scanoutput $out/scan-build
|
||||
rmdir $out/scan-build-tmp
|
||||
chmod -R a+rX $out/scan-build
|
||||
fi
|
||||
|
||||
if hash doxygen; then
|
||||
(cd "$src"/doc; make $MAKEFLAGS)
|
||||
mkdir -p "$out"/doc
|
||||
for d in "$src"/doc/output.*; do
|
||||
component=$(basename "$d" | sed -e 's/^output.//')
|
||||
mv "$d"/html "$out"/doc/$component
|
||||
rm -rf "$d"
|
||||
done
|
||||
fi
|
36
autopackage.sh
Executable file
36
autopackage.sh
Executable file
@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -xe
|
||||
|
||||
DPDK_DIR=/usr/local/dpdk-2.1.0/x86_64-native-linuxapp-gcc
|
||||
|
||||
src=$(readlink -f $(dirname $0))
|
||||
out=$PWD
|
||||
|
||||
MAKEFLAGS=${MAKEFLAGS:--j16}
|
||||
cd $src
|
||||
|
||||
make clean
|
||||
|
||||
if [ `git status --porcelain | wc -l` -ne 0 ]; then
|
||||
echo make clean left the following files:
|
||||
git status --porcelain
|
||||
exit 1
|
||||
fi
|
||||
|
||||
pv=spdk-$(date +%Y_%m_%d)
|
||||
|
||||
find . -iname "spdk-*.tar.gz" -delete
|
||||
git archive HEAD -9 --prefix=${pv}/ -o ${pv}.tar.gz
|
||||
|
||||
tarball=$(ls -1 spdk-*.tar.gz)
|
||||
if [ $PWD != $out ]; then
|
||||
mv $tarball $out/
|
||||
fi
|
||||
|
||||
# Build from packaged source
|
||||
tmpdir=$(mktemp -d)
|
||||
echo "tmpdir=$tmpdir"
|
||||
tar -C "$tmpdir" -xf $out/$tarball
|
||||
(cd "$tmpdir"/spdk-* && time make ${MAKEFLAGS} DPDK_DIR=$DPDK_DIR)
|
||||
rm -rf "$tmpdir"
|
53
autotest.sh
Executable file
53
autotest.sh
Executable file
@ -0,0 +1,53 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
rootdir=$(readlink -f $(dirname $0))
|
||||
source "$rootdir/scripts/autotest_common.sh"
|
||||
|
||||
set -xe
|
||||
|
||||
if [ $EUID -ne 0 ]; then
|
||||
echo "$0 must be run as root"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
timing_enter autotest
|
||||
|
||||
src=$(readlink -f $(dirname $0))
|
||||
out=$PWD
|
||||
cd $src
|
||||
|
||||
# set up huge pages
|
||||
timing_enter afterboot
|
||||
./scripts/configure_hugepages.sh 3072
|
||||
timing_exit afterboot
|
||||
|
||||
lsmod | grep -q ^nvme && rmmod nvme || true
|
||||
|
||||
#####################
|
||||
# Unit Tests
|
||||
#####################
|
||||
|
||||
timing_enter lib
|
||||
|
||||
time test/lib/nvme/nvme.sh
|
||||
time test/lib/memory/memory.sh
|
||||
|
||||
timing_exit lib
|
||||
|
||||
# detach pci devices from uio driver
|
||||
grep -q "^uio_pci_generic" /proc/modules && rmmod uio_pci_generic
|
||||
|
||||
# bind NVMe devices to NVMe driver if no kernel device
|
||||
if [ -d "/sys/bus/pci/drivers/nvme" ]; then
|
||||
device=`find /sys/bus/pci/drivers/nvme -name "0000*" -print`
|
||||
if [ -z "$device" ]; then
|
||||
rmmod nvme
|
||||
modprobe nvme
|
||||
fi
|
||||
fi
|
||||
|
||||
timing_exit autotest
|
||||
chmod a+r $output_dir/timing.txt
|
||||
|
||||
# catch any stray core files
|
||||
process_core
|
16
scripts/configure_hugepages.sh
Executable file
16
scripts/configure_hugepages.sh
Executable file
@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
if [ "$1" = "" ]; then
|
||||
NRHUGE=1024
|
||||
else
|
||||
NRHUGE="$1"
|
||||
fi
|
||||
|
||||
if mount | grep -qv hugetlbfs; then
|
||||
mkdir -p /mnt/huge
|
||||
mount -t hugetlbfs nodev /mnt/huge
|
||||
fi
|
||||
|
||||
echo $NRHUGE > /proc/sys/vm/nr_hugepages
|
Loading…
Reference in New Issue
Block a user