From 39f0445a99cbb1256c531f8ec827aea424e328c3 Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Fri, 30 May 2025 14:33:01 +0200 Subject: Add test verifying that serve can handle deep trees Add a test testing the serve instance implicit to the "with serve" rule by asking it to build a target that creates an export target where the output is a deep tree. --- test/end-to-end/serve-service/deep-tree.sh | 92 ++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 test/end-to-end/serve-service/deep-tree.sh (limited to 'test/end-to-end/serve-service/deep-tree.sh') diff --git a/test/end-to-end/serve-service/deep-tree.sh b/test/end-to-end/serve-service/deep-tree.sh new file mode 100644 index 00000000..1b150d6c --- /dev/null +++ b/test/end-to-end/serve-service/deep-tree.sh @@ -0,0 +1,92 @@ +#!/bin/sh +# Copyright 2025 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 + +env + +readonly JUST="${PWD}/bin/tool-under-test" +readonly JUST_MR="${PWD}/bin/mr-tool-under-test" +readonly LBRA="${TEST_TMPDIR}/local-build-root-a" +readonly LBRB="${TEST_TMPDIR}/local-build-root-b" +readonly LBRC="${TEST_TMPDIR}/local-build-root-c" +readonly OUT="${PWD}/out" +mkdir -p "${OUT}" + + +COMPAT="" +if [ "${COMPATIBLE:-}" = "YES" ]; then + COMPAT="--compatible" +fi + +mkdir work +cd work +touch ROOT + +cat > repos.json <&1 + +# Santity check: we find data2.txt and verify the content +find "${OUT}/result" -name data2.txt 2>&1 +grep 2 $(find "${OUT}/result" -name data2.txt) + + +# Verify that the deep tree can also be handled by install-cas +# with and without the --remember option +cat artifacts.json +echo + +"${JUST_MR}" --norc --local-build-root "${LBRB}" \ + -r ${REMOTE_EXECUTION_ADDRESS} ${COMPAT} \ + --just "${JUST}" \ + install-cas --remember -o "${OUT}/first-copy" \ + $(jq -r '."'"${OUT}/result/out"'".id' artifacts.json)::t \ + 2>&1 + +"${JUST_MR}" --norc --local-build-root "${LBRC}" \ + -r ${REMOTE_EXECUTION_ADDRESS} ${COMPAT} \ + --just "${JUST}" \ + install-cas -o "${OUT}/second-copy" \ + $(jq -r '."'"${OUT}/result/out"'".id' artifacts.json)::t \ + 2>&1 + +# sanity check of the copies +grep 2 $(find "${OUT}/first-copy" -name data2.txt) +grep 2 $(find "${OUT}/second-copy" -name data2.txt) + +echo OK -- cgit v1.2.3