diff options
author | Vratko Polak <vrpolak@cisco.com> | 2019-11-15 17:27:43 +0100 |
---|---|---|
committer | Vratko Polak <vrpolak@cisco.com> | 2019-11-18 13:41:21 +0000 |
commit | 20cc67d5f23a7f4e05b08012bf3d3a63be4bcf63 (patch) | |
tree | 875ab5ae4abe9be421bffa2befb5e312b78035e7 /resources/libraries/bash | |
parent | 19330cec01d78b45b051ec0659d74d17339923b8 (diff) |
Improve test tag string parsing
Instead of just adding the missing -clx,
the new way aims to be forward compatible.
The new implementation is quite permissive,
ignoring all "word" chars sticking to the trigger word
and returning everything after that and space up to the endline.
+ Unified perftest and devicetest handling.
+ Consequently, triggers like "devicetest-1n-skx GBP" will work now.
Change-Id: I3bda6105195180d35a589a75318f569e36f03461
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
Diffstat (limited to 'resources/libraries/bash')
-rw-r--r-- | resources/libraries/bash/function/common.sh | 33 |
1 files changed, 12 insertions, 21 deletions
diff --git a/resources/libraries/bash/function/common.sh b/resources/libraries/bash/function/common.sh index 89e1af1c79..1ef7c93da3 100644 --- a/resources/libraries/bash/function/common.sh +++ b/resources/libraries/bash/function/common.sh @@ -490,41 +490,32 @@ function get_test_tag_string () { # - TEST_CODE - The test selection string from environment or argument. # Variables set: # - TEST_TAG_STRING - The string following trigger word in gerrit comment. - # May be empty, not set on event types not adding comment. + # May be empty, or even not set on event types not adding comment. # TODO: ci-management scripts no longer need to perform this. set -exuo pipefail - trigger="" if [[ "${GERRIT_EVENT_TYPE-}" == "comment-added" ]]; then case "${TEST_CODE}" in *"device"*) - # On parsing error, ${trigger} stays empty. - trigger="$(echo "${GERRIT_EVENT_COMMENT_TEXT}" \ - | grep -oE '(devicetest$|devicetest[[:space:]].+$)' \ - || true)" - # Set test tags as string. - TEST_TAG_STRING="${trigger#$"devicetest"}" + trigger="devicetest" ;; *"perf"*) - # On parsing error, ${trigger} stays empty. - comment="${GERRIT_EVENT_COMMENT_TEXT}" - # As "perftest" can be followed by something, we substitute it. - comment="${comment/perftest-2n/perftest}" - comment="${comment/perftest-3n/perftest}" - comment="${comment/perftest-hsw/perftest}" - comment="${comment/perftest-skx/perftest}" - comment="${comment/perftest-dnv/perftest}" - comment="${comment/perftest-tsh/perftest}" - tag_string="$(echo "${comment}" \ - | grep -oE '(perftest$|perftest[[:space:]].+$)' || true)" - # Set test tags as string. - TEST_TAG_STRING="${tag_string#$"perftest"}" + trigger="perftest" ;; *) die "Unknown specification: ${TEST_CODE}" esac + # Ignore lines not containing the trigger word. + comment=$(fgrep "${trigger}" <<< "${GERRIT_EVENT_COMMENT_TEXT}") || true + # The vpp-csit triggers trail stuff we are not interested in. + # Removing them and trigger word: https://unix.stackexchange.com/a/13472 + # (except relying on \s whitespace, \S non-whitespace and . both). + # The last string is concatenated, only the middle part is expanded. + cmd=("grep" "-oP" '\S*'"${trigger}"'\S*\s\K.+$') || die "Unset trigger?" + # On parsing error, TEST_TAG_STRING probably stays empty. + TEST_TAG_STRING=$("${cmd[@]}" <<< "${comment}") || true fi } |