diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 18:24:20 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 18:24:20 +0000 |
commit | 483eb2f56657e8e7f419ab1a4fab8dce9ade8609 (patch) | |
tree | e5d88d25d870d5dedacb6bbdbe2a966086a0a5cf /src/test/run-cli-tests | |
parent | Initial commit. (diff) | |
download | ceph-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 'src/test/run-cli-tests')
-rwxr-xr-x | src/test/run-cli-tests | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/src/test/run-cli-tests b/src/test/run-cli-tests new file mode 100755 index 00000000..0e94751c --- /dev/null +++ b/src/test/run-cli-tests @@ -0,0 +1,69 @@ +#!/bin/sh +set -e + +if ! command -v virtualenv >/dev/null; then + echo "$0: virtualenv not installed, skipping python-using tests." 1>&2 + exit 1 +fi + +SRCDIR="$(dirname "$0")" + +# build directory, if different, can be passed as an argument; +# it is expected to point to the equivalent subdirectory of the +# tree as where this script is stored +BUILDDIR="$SRCDIR" +case "$1" in + ''|-*) + # not set or looks like a flag to cram + ;; + *) + # looks like the builddir + BUILDDIR="$1" + shift + ;; +esac + +VENV="$BUILDDIR/virtualenv" +CRAM_BIN="$VENV/bin/cram" +if [ ! -e "$CRAM_BIN" ]; then + # With "make distcheck", the source directory must be read-only. I + # patched cram to support that. See upstream ticket at + # https://bitbucket.org/brodie/cram/issue/9/allow-read-only-directories-for-t + # -- tv@inktank.com + virtualenv --python python3 "$VENV" && $VENV/bin/pip --log "$VENV"/log.txt \ + install git+https://github.com/ceph/cram.git@0.7-error-dir#egg=cram +fi + +SRCDIR_ABS="$(readlink -f "$SRCDIR")" +BUILDDIR_ABS="$(readlink -f "$BUILDDIR")" +FAKE_HOME="$BUILDDIR_ABS/fake_home" +mkdir -p "$FAKE_HOME" + +# cram doesn't like seeing the same foo.t basename twice on the same +# run, so run it once per directory +FAILED=0 +FAILEDTOOLS="" +for tool in "$SRCDIR"/cli/*; do + toolname="$(basename "$tool")" + install -d -m0755 -- "$BUILDDIR/cli/$toolname" + if ! env -i \ + PATH="$BUILDDIR_ABS/..:$SRCDIR_ABS/..:$PATH" \ + CEPH_CONF=/dev/null \ + CEPH_ARGS="--no-mon-config" \ + CCACHE_DIR="$CCACHE_DIR" \ + CC="$CC" \ + CXX="$CXX" \ + HOME="$FAKE_HOME" \ + "$SRCDIR/run-cli-tests-maybe-unset-ccache" \ + "$CRAM_BIN" -v "$@" --error-dir="$BUILDDIR/cli/$toolname" -- "$tool"/*.t + then + FAILED=1 + FAILEDTOOLS="$FAILEDTOOLS $toolname" + fi +done + +if [ $FAILED -eq 1 ]; then + echo "Tests that failed: $FAILEDTOOLS" +fi + +exit "$FAILED" |