summaryrefslogtreecommitdiff
path: root/rules/shell/test/runner
diff options
context:
space:
mode:
authorKlaus Aehlig <klaus.aehlig@huawei.com>2023-08-17 14:46:10 +0200
committerKlaus Aehlig <klaus.aehlig@huawei.com>2023-08-17 14:46:10 +0200
commit95ce31bfff1beebae8971a1bcdbff92cf929f15d (patch)
tree3fe7aa2ad06d38b1fcfd7ef4e108840d22f79ba1 /rules/shell/test/runner
parentd8bdfc71c77793425b7069855c1aa89a537d05a3 (diff)
parente677af4cb380e42b750a85f158fd33e491832489 (diff)
downloadrules-cc-95ce31bfff1beebae8971a1bcdbff92cf929f15d.tar.gz
Merge subtree 'rules' into rules-cc
Diffstat (limited to 'rules/shell/test/runner')
-rwxr-xr-xrules/shell/test/runner59
1 files changed, 59 insertions, 0 deletions
diff --git a/rules/shell/test/runner b/rules/shell/test/runner
new file mode 100755
index 0000000..97c75ef
--- /dev/null
+++ b/rules/shell/test/runner
@@ -0,0 +1,59 @@
+#!/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}"
+export LD_LIBRARY_PATH=$(realpath ./libs):$LD_LIBRARY_PATH
+
+# 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