summaryrefslogtreecommitdiff
path: root/rules/shell/test/test_runner.sh
diff options
context:
space:
mode:
authorOliver Reiche <oliver.reiche@huawei.com>2022-12-12 11:47:52 +0100
committerOliver Reiche <oliver.reiche@huawei.com>2022-12-12 11:47:52 +0100
commit6e10ee13df0b83511d7fe94bb755ac53f993c0ec (patch)
tree64615ddb751a207ae8da42a620f085795cf1c035 /rules/shell/test/test_runner.sh
parent247e09b1ba01deb5649c6a73a7f272e1f72178fe (diff)
parentd44be66f2a916168e0f5a7055e49f12c252b2cd2 (diff)
downloadrules-cc-6e10ee13df0b83511d7fe94bb755ac53f993c0ec.tar.gz
Add 'rules/' from commit 'd44be66f2a916168e0f5a7055e49f12c252b2cd2'
git-subtree-dir: rules git-subtree-mainline: 247e09b1ba01deb5649c6a73a7f272e1f72178fe git-subtree-split: d44be66f2a916168e0f5a7055e49f12c252b2cd2
Diffstat (limited to 'rules/shell/test/test_runner.sh')
-rwxr-xr-xrules/shell/test/test_runner.sh58
1 files changed, 58 insertions, 0 deletions
diff --git a/rules/shell/test/test_runner.sh b/rules/shell/test/test_runner.sh
new file mode 100755
index 0000000..a99d5b7
--- /dev/null
+++ b/rules/shell/test/test_runner.sh
@@ -0,0 +1,58 @@
+#!/bin/sh
+# Copyright 2022 Huawei Cloud Computing Technology Co., Ltd.
+#
+# 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.
+
+
+# ensure all required outputs are present
+touch stdout
+touch stderr
+RESULT=UNKNOWN
+echo "${RESULT}" > result
+echo UNKNOWN > time-start
+echo UNKNOWN > time-stop
+
+mkdir scratch
+export TEST_TMPDIR=$(realpath scratch)
+export TMPDIR="${TEST_TMPDIR}"
+
+# Change to the working directory; note: while unlikely, the test
+# might not have test data, so we have to ensure the presence of
+# the work directory.
+mkdir -p work
+cd work
+
+date +%s > ../time-start
+# TODO:
+# - proper wrapping with timeout
+if sh ../test.sh > ../stdout 2> ../stderr
+then
+ RESULT=PASS
+else
+ RESULT=FAIL
+fi
+date +%s > ../time-stop
+
+# Ensure all the promissed output files in the work directory
+# are present, even if the test failed to create them.
+for f in "$@"
+do
+ touch "./${f}"
+done
+
+echo "${RESULT}" > ../result
+
+if [ "${RESULT}" '!=' PASS ]
+then
+ exit 1;
+fi