From bd15e736cf720df2748629c91a2ac58f7aa0fec6 Mon Sep 17 00:00:00 2001 From: Paul Cristian Sarbu Date: Wed, 21 Feb 2024 11:38:48 +0100 Subject: test just-mr and serve: Check archive repository root creation Extends test coverage for the interaction between 'just-mr setup' and the serve endpoint for archive repositories. --- .../resolved-absent-known-upload.sh | 130 +++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 test/end-to-end/serve-service/serve-archive-root/resolved-absent-known-upload.sh (limited to 'test/end-to-end/serve-service/serve-archive-root/resolved-absent-known-upload.sh') diff --git a/test/end-to-end/serve-service/serve-archive-root/resolved-absent-known-upload.sh b/test/end-to-end/serve-service/serve-archive-root/resolved-absent-known-upload.sh new file mode 100644 index 00000000..d5cbd61d --- /dev/null +++ b/test/end-to-end/serve-service/serve-archive-root/resolved-absent-known-upload.sh @@ -0,0 +1,130 @@ +#!/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. + + +### +# This test checks that an absent root can successfully be made in the presence +# of the serve endpoint in the situation where we already have the file +# association (i.e., we know the unresolved root tree) and the serve endpoint +# does not know the archive. The upload can only happen in native mode. +# +# The test archive contains symlinks to be resolved, which tests also the +# resolved tree file association. +## + +set -eu + +readonly JUST="${PWD}/bin/tool-under-test" +readonly JUST_MR="${PWD}/bin/mr-tool-under-test" +readonly DISTDIR="${TEST_TMPDIR}/distfiles" +readonly LBR="${TEST_TMPDIR}/local-build-root" + +mkdir -p "${DISTDIR}" + +COMPAT="" +if [ "${COMPATIBLE:-}" = "YES" ]; then + COMPAT="--compatible" +fi + +ENDPOINT_ARGS="-r ${REMOTE_EXECUTION_ADDRESS} -R ${SERVE} ${COMPAT}" + +### +# Setup sample repos config with present and absent repos +## + +cp src.tar "${DISTDIR}" +HASH=$(git hash-object src.tar) + +mkdir work +cd work + +touch ROOT +cat > repos.json <&1 + ${JUST} gc --local-build-root ${LBR} 2>&1 + + CONF=$("${JUST_MR}" --norc -C repos.json \ + --just "${JUST}" \ + --local-build-root "${LBR}" \ + --log-limit 6 \ + ${ENDPOINT_ARGS} setup absent) + cat "${CONF}" + echo + test $(jq -r '.repositories.absent.workspace_root[1]' "${CONF}") = "${TREE}" + +else + + echo --- + echo Checking expected failures + + ${JUST} gc --local-build-root ${LBR} 2>&1 + ${JUST} gc --local-build-root ${LBR} 2>&1 + + "${JUST_MR}" --norc -C repos.json \ + --just "${JUST}" \ + --local-build-root "${LBR}" \ + --log-limit 6 \ + ${ENDPOINT_ARGS} setup absent 2>&1 && exit 1 || : + echo Failed as expected +fi + +echo OK -- cgit v1.2.3