9ba80de0dd
If stub terminates right after execution, e.g. due to lack of system resources (requested number of cpu cores to run on, right amount of memory, etc.) start_stub() would end up blocking forever since there wouldn't be any entity around that would mknod spdk_stub0 for it to break the loop. Avoid the above scenario by checking if $stubpid is still visible under procfs and return if it goes missing. To make sure kill_stub() is still called to clean up after start_stub() declare proper trap prior the call to start_stub(). Additionally, avoid potential stderr noise in case kill|wait are told to act on a PID that's not visible in the ns anymore. Change-Id: Ief41200c57957f84b4f96a54baabc8da1f27dd43 Signed-off-by: Michal Berger <michallinuxstuff@gmail.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/482653 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
51 lines
1.2 KiB
Bash
Executable File
51 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
testdir=$(readlink -f $(dirname $0))
|
|
rootdir=$(readlink -f $testdir/../..)
|
|
source $rootdir/scripts/common.sh
|
|
source $rootdir/test/common/autotest_common.sh
|
|
|
|
if [ -z "${DEPENDENCY_DIR}" ]; then
|
|
echo DEPENDENCY_DIR not defined!
|
|
exit 1
|
|
fi
|
|
|
|
spdk_nvme_cli="${DEPENDENCY_DIR}/nvme-cli"
|
|
|
|
if [ ! -d $spdk_nvme_cli ]; then
|
|
echo "nvme-cli repository not found at $spdk_nvme_cli; skipping tests."
|
|
exit 0
|
|
fi
|
|
|
|
if [ $(uname) = Linux ]; then
|
|
trap "kill_stub; exit 1" SIGINT SIGTERM EXIT
|
|
start_stub "-s 2048 -i 0 -m 0xF"
|
|
fi
|
|
|
|
# Build against the version of SPDK under test
|
|
rm -f "$spdk_nvme_cli/spdk"
|
|
ln -sf "$rootdir" "$spdk_nvme_cli/spdk"
|
|
|
|
cd $spdk_nvme_cli
|
|
make clean && make -j$(nproc) LDFLAGS="$(make -s -C $spdk_nvme_cli/spdk ldflags)"
|
|
sed -i 's/spdk=0/spdk=1/g' spdk.conf
|
|
sed -i 's/shm_id=.*/shm_id=0/g' spdk.conf
|
|
for bdf in $(iter_pci_class_code 01 08 02); do
|
|
./nvme list
|
|
./nvme id-ctrl $bdf
|
|
./nvme list-ctrl $bdf
|
|
./nvme get-ns-id $bdf
|
|
./nvme id-ns $bdf
|
|
./nvme fw-log $bdf
|
|
./nvme smart-log $bdf
|
|
./nvme error-log $bdf
|
|
./nvme list-ns $bdf -n 1
|
|
./nvme get-feature $bdf -f 1 -s 1 -l 100
|
|
./nvme get-log $bdf -i 1 -l 100
|
|
./nvme reset $bdf
|
|
done
|
|
if [ $(uname) = Linux ]; then
|
|
trap - SIGINT SIGTERM EXIT
|
|
kill_stub
|
|
fi
|