aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/bash/entry/check/autogen.sh
diff options
context:
space:
mode:
authorVratko Polak <vrpolak@cisco.com>2018-09-14 17:09:35 +0200
committerVratko Polak <vrpolak@cisco.com>2019-02-27 09:02:55 +0000
commit694b418272e9d7670ac69d477ed731bb7445b65a (patch)
tree2ec006cb61562bddabbf4cd68ba8ef5963694768 /resources/libraries/bash/entry/check/autogen.sh
parent228c27de3986731fc6be39445dd0b23b4003d78c (diff)
Add tox.ini and few checker scripts
The plan is to change csit-validate-pylint-master job to fail if (and only if) tox fails. This will allow us to easily add checks, with or without the voting power. Each check produces log (ignored in .gitignore) the voting job can archive. + Made autogen quiet by default, to avoid spam in autogen checker. + Unified the way direct csit subdirectories are git-ignored. Change-Id: I6477b1ef7da6d3e30f68c5850d04900cc52f431e Signed-off-by: Vratko Polak <vrpolak@cisco.com>
Diffstat (limited to 'resources/libraries/bash/entry/check/autogen.sh')
-rw-r--r--resources/libraries/bash/entry/check/autogen.sh61
1 files changed, 61 insertions, 0 deletions
diff --git a/resources/libraries/bash/entry/check/autogen.sh b/resources/libraries/bash/entry/check/autogen.sh
new file mode 100644
index 0000000000..35ecc281ee
--- /dev/null
+++ b/resources/libraries/bash/entry/check/autogen.sh
@@ -0,0 +1,61 @@
+# Copyright (c) 2019 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -exuo pipefail
+
+# This file should be executed from tox, as the assumend working directory
+# is different from where this file is located.
+# This file does not have executable flag nor shebang,
+# to dissuade non-tox callers.
+
+# This script run every executable *.py script anywhere within tests/ dir,
+# the working directory temporarily changed to where the *.py file is.
+# Proper virtualenv is assumed to be active.
+# If "git diff" sees any change, this script fails.
+# The diff output stored to autogen.log (overwriting).
+# The *.py files are assumed to be robot suite generators,
+# any change means the contribution does not match the generated code.
+
+# "set -eu" handles failures from the following two lines.
+BASH_CHECKS_DIR="$(dirname $(readlink -e "${BASH_SOURCE[0]}"))"
+BASH_FUNCTION_DIR="$(readlink -e "${BASH_CHECKS_DIR}/../../function")"
+source "${BASH_FUNCTION_DIR}/common.sh" || {
+ echo "Source failed." >&2
+ exit 1
+}
+
+work_dir="$(pwd)" || die
+trap "cd '${work_dir}'" EXIT || die
+file_list="$(find ./tests -type f -executable -name '*.py')" || die
+
+for gen in ${file_list}; do
+ directory="$(dirname "${gen}")" || die
+ filename="$(basename "${gen}")" || die
+ pushd "${directory}" || die
+ ./"${filename}" || die
+ popd || die
+done
+
+lines="$(git diff | tee "autogen.log" | wc -l)" || die
+if [ "${lines}" != "0" ]; then
+ # TODO: Decide which text goes to stdout and which to stderr.
+ warn "Autogen conflict diff nonzero lines: ${lines}"
+ # TODO: Disable if output size does more harm than good.
+ cat "autogen.log" >&2
+ warn
+ warn "Autogen checker: FAIL"
+ exit 1
+fi
+
+warn
+warn "Autogen checker: PASS"