From c58fd76e1aef483e09f8a461149711e51e2479ef Mon Sep 17 00:00:00 2001 From: Shreeya Patel Date: Wed, 5 Jun 2024 16:43:51 +0530 Subject: [PATCH 1/3] kselftest: new option -E for specifying env vars --- automated/linux/kselftest/kselftest.sh | 13 +++++++++++-- automated/linux/kselftest/kselftest.yaml | 4 +++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/automated/linux/kselftest/kselftest.sh b/automated/linux/kselftest/kselftest.sh index 383b95c1a..bb583a9b2 100755 --- a/automated/linux/kselftest/kselftest.sh +++ b/automated/linux/kselftest/kselftest.sh @@ -44,11 +44,12 @@ usage() { [-S kselftest-skipfile] [-b board] [-g branch] - [-e environment]" 1>&2 + [-e environment] + [-E ENV_NAME=ENV_VAL]" 1>&2 exit 1 } -while getopts "i:n:c:T:t:s:u:p:L:S:b:g:e:h" opt; do +while getopts "i:n:c:T:t:s:u:p:L:S:b:g:e:E:h" opt; do case "${opt}" in i) SHARD_INDEX="${OPTARG}" ;; n) SHARD_NUMBER="${OPTARG}" ;; @@ -107,6 +108,14 @@ while getopts "i:n:c:T:t:s:u:p:L:S:b:g:e:h" opt; do e) export ENVIRONMENT="${OPTARG}" ;; + E) + IFS='=' read -r env_name env_val <<< "$OPTARG" + if [ -z "$env_name" ] || [ -z "$env_val" ]; then + echo "Option -E requires an argument of format ENV_NAME=ENV_VAL" + exit 1 + fi + # Use eval to set an environment variable dynamically + eval "export ${env_name}='${env_val}'" h|*) usage ;; esac done diff --git a/automated/linux/kselftest/kselftest.yaml b/automated/linux/kselftest/kselftest.yaml index e4ddbf2a4..ed91458b4 100644 --- a/automated/linux/kselftest/kselftest.yaml +++ b/automated/linux/kselftest/kselftest.yaml @@ -50,6 +50,8 @@ params: BOARD: "" BRANCH: "" ENVIRONMENT: "" + # Set arbitrary environment variable + ENV: "" # Number of shards that will be done, default 1 which is the same as no sharding. SHARD_NUMBER: 1 @@ -60,5 +62,5 @@ params: run: steps: - cd ./automated/linux/kselftest/ - - ./kselftest.sh -c "${TST_CMDFILES}" -T "${TST_CASENAME}" -t "${TESTPROG}" -s "${SKIP_INSTALL}" -u "${TESTPROG_URL}" -L "${SKIPLIST}" -S "${SKIPFILE}" -b "${BOARD}" -g "${BRANCH}" -e "${ENVIRONMENT}" -p "${KSELFTEST_PATH}" -n "${SHARD_NUMBER}" -i "${SHARD_INDEX}" + - ./kselftest.sh -c "${TST_CMDFILES}" -T "${TST_CASENAME}" -t "${TESTPROG}" -s "${SKIP_INSTALL}" -u "${TESTPROG_URL}" -L "${SKIPLIST}" -S "${SKIPFILE}" -b "${BOARD}" -g "${BRANCH}" -e "${ENVIRONMENT}" -p "${KSELFTEST_PATH}" -n "${SHARD_NUMBER}" -i "${SHARD_INDEX}" -E "${ENV}" - ../../utils/send-to-lava.sh ./output/result.txt From 9246e6bc725d670c69904af9fdbb415fbcbdc066 Mon Sep 17 00:00:00 2001 From: Shreeya Patel Date: Wed, 5 Jun 2024 17:02:21 +0530 Subject: [PATCH 2/3] fix shellcheck --- automated/linux/kselftest/kselftest.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/automated/linux/kselftest/kselftest.sh b/automated/linux/kselftest/kselftest.sh index bb583a9b2..b7823a577 100755 --- a/automated/linux/kselftest/kselftest.sh +++ b/automated/linux/kselftest/kselftest.sh @@ -109,13 +109,16 @@ while getopts "i:n:c:T:t:s:u:p:L:S:b:g:e:E:h" opt; do export ENVIRONMENT="${OPTARG}" ;; E) - IFS='=' read -r env_name env_val <<< "$OPTARG" + IFS='=' read -r env_name env_val << EOF +$OPTARG +EOF if [ -z "$env_name" ] || [ -z "$env_val" ]; then echo "Option -E requires an argument of format ENV_NAME=ENV_VAL" exit 1 fi # Use eval to set an environment variable dynamically eval "export ${env_name}='${env_val}'" + ;; h|*) usage ;; esac done From 09fc67ebf378164bee7ac351f22df25cdb572127 Mon Sep 17 00:00:00 2001 From: Shreeya Patel Date: Wed, 5 Jun 2024 17:16:52 +0530 Subject: [PATCH 3/3] kselftest: allow empty -E option, echo the env var --- automated/linux/kselftest/kselftest.sh | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/automated/linux/kselftest/kselftest.sh b/automated/linux/kselftest/kselftest.sh index b7823a577..eb3eba78f 100755 --- a/automated/linux/kselftest/kselftest.sh +++ b/automated/linux/kselftest/kselftest.sh @@ -109,15 +109,18 @@ while getopts "i:n:c:T:t:s:u:p:L:S:b:g:e:E:h" opt; do export ENVIRONMENT="${OPTARG}" ;; E) - IFS='=' read -r env_name env_val << EOF + if [ -n "$OPTARG" ]; then + IFS='=' read -r env_name env_val << EOF $OPTARG EOF - if [ -z "$env_name" ] || [ -z "$env_val" ]; then - echo "Option -E requires an argument of format ENV_NAME=ENV_VAL" - exit 1 + if [ -z "$env_name" ] || [ -z "$env_val" ]; then + echo "Option -E requires an argument of format ENV_NAME=ENV_VAL" + exit 1 + fi + # Use eval to set an environment variable dynamically + eval "export ${env_name}=${env_val}" + eval "echo \"${env_name}='\$${env_name}'\"" fi - # Use eval to set an environment variable dynamically - eval "export ${env_name}='${env_val}'" ;; h|*) usage ;; esac