From e79f95584bab08191c0b765ad6481308a7ef36a3 Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Fri, 19 Apr 2024 18:03:51 +0200 Subject: add end-to-end test executing local binaries remotely --- test/end-to-end/remote-execution/TARGETS | 7 +++ test/end-to-end/remote-execution/execute.sh | 83 +++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 test/end-to-end/remote-execution/execute.sh diff --git a/test/end-to-end/remote-execution/TARGETS b/test/end-to-end/remote-execution/TARGETS index 9d3709a6..727197b9 100644 --- a/test/end-to-end/remote-execution/TARGETS +++ b/test/end-to-end/remote-execution/TARGETS @@ -23,6 +23,12 @@ , "test": ["install.sh"] , "deps": [["end-to-end", "tool-under-test"]] } +, "execute": + { "type": ["end-to-end", "with remote"] + , "name": ["execute"] + , "test": ["execute.sh"] + , "deps": [["end-to-end", "tool-under-test"]] + } , "install-cas": { "type": ["end-to-end", "with remote"] , "name": ["install-cas"] @@ -79,6 +85,7 @@ , "install-cas" , "dispatch" , "split-splice" + , "execute" ] , { "type": "if" , "cond": diff --git a/test/end-to-end/remote-execution/execute.sh b/test/end-to-end/remote-execution/execute.sh new file mode 100644 index 00000000..0881e940 --- /dev/null +++ b/test/end-to-end/remote-execution/execute.sh @@ -0,0 +1,83 @@ +#!/bin/sh +# Copyright 2024 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. + + +set -eu + +readonly JUST="${PWD}/bin/tool-under-test" +readonly LBR="${TEST_TMPDIR}/local-build-root" + +REMOTE_EXECUTION_ARGS="-r ${REMOTE_EXECUTION_ADDRESS}" +LOCAL_ARGS="" +if [ -n "${COMPATIBLE:-}" ] +then + REMOTE_EXECUTION_ARGS="${REMOTE_EXECUTION_ARGS} --compatible" + LOCAL_ARGS="--compatible" +fi + +mkdir work +cd work +touch ROOT + +for i in `seq 1 32` +do + cat > generate-$i.sh < \$1 +EOF + chmod 755 generate-$i.sh +done + +cat > TARGETS <> TARGETS <> TARGETS +for i in `seq 1 32` +do + cat >> TARGETS <> TARGETS + +cat TARGETS +echo + +# remote build should succeed +"${JUST}" build --local-build-root "${LBR}" \ + ${REMOTE_EXECUTION_ARGS} --dump-artifacts remote.json 2>&1 +echo + +# local build should succeed, and yield the same result +"${JUST}" build --local-build-root "${LBR}" \ + ${LOCAL_ARGS} --dump-artifacts local.json 2>&1 + +echo +diff remote.json local.json + +echo OK -- cgit v1.2.3