Skip to content

Commit

Permalink
Fix run-e2e.sh (cosmos#4624)
Browse files Browse the repository at this point in the history
  • Loading branch information
chatton authored Sep 12, 2023
1 parent a9cba09 commit 6680fea
Showing 1 changed file with 27 additions and 4 deletions.
31 changes: 27 additions & 4 deletions e2e/scripts/run-e2e.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,46 @@ set -eo pipefail
TEST="${1}"
ENTRY_POINT="${2:-}"

function _verify_jq() {
if ! command -v jq > /dev/null ; then
echo "jq is required to extract test entrypoint."
exit 1
fi
}

function _verify_fzf() {
if ! command -v fzf > /dev/null ; then
echo "fzf is required to interactively select a test."
exit 1
fi
}

function _verify_dependencies() {
if [ -z "${TEST}" ]; then
# fzf is only required if we are not explicitly specifying a test.
_verify_fzf
fi
# jq is always required to determine the entrypoint of the test.
_verify_jq
}

# _get_test returns the test that should be used in the e2e test. If an argument is provided, that argument
# is returned. Otherwise, fzf is used to interactively choose from all available tests.
function _get_test(){
# if an argument is provided, it is used directly. This enables the drop down selection with fzf.
if [ -n "$1" ]; then
echo "$1"
return
# if fzf and jq are installed, we can use them to provide an interactive mechanism to select from all available tests.
elif command -v fzf > /dev/null && command -v jq > /dev/null; then
else
cd ..
go run -mod=readonly cmd/build_test_matrix/main.go | jq -r '.include[] | .test' | fzf
cd - > /dev/null
else
echo "TEST was not provided and both fzf and jq are not present. Unable to determine which test should be used."
exit 1
fi
}

_verify_dependencies

# if test is set, that is used directly, otherwise the test can be interactively provided if fzf is installed.
TEST="$(_get_test ${TEST})"

Expand Down

0 comments on commit 6680fea

Please sign in to comment.