From ddff40e1ad4869e21a35ff3e38fb23e06856b23f Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Mon, 16 Jan 2023 15:14:07 +0100 Subject: Add test to verify just-mr fetch functionality --- test/end-to-end/just-mr/TARGETS | 11 ++++++- test/end-to-end/just-mr/fetch.sh | 70 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 test/end-to-end/just-mr/fetch.sh (limited to 'test') diff --git a/test/end-to-end/just-mr/TARGETS b/test/end-to-end/just-mr/TARGETS index db7b2621..4a73e985 100644 --- a/test/end-to-end/just-mr/TARGETS +++ b/test/end-to-end/just-mr/TARGETS @@ -4,6 +4,15 @@ , "test": ["cas-independent.sh"] , "deps": [["test/end-to-end", "mr-tool-under-test"]] } +, "fetch": + { "type": ["@", "rules", "shell/test", "script"] + , "name": ["fetch"] + , "test": ["fetch.sh"] + , "deps": [["test/end-to-end", "mr-tool-under-test"]] + } , "TESTS": - {"type": "install", "tainted": ["test"], "deps": ["cas-independent"]} + { "type": "install" + , "tainted": ["test"] + , "deps": ["cas-independent", "fetch"] + } } diff --git a/test/end-to-end/just-mr/fetch.sh b/test/end-to-end/just-mr/fetch.sh new file mode 100644 index 00000000..8009f151 --- /dev/null +++ b/test/end-to-end/just-mr/fetch.sh @@ -0,0 +1,70 @@ +#!/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. + + +set -eu + +readonly JUST_MR="${PWD}/bin/mr-tool-under-test" +readonly DISTDIR="${TEST_TMPDIR}/distfiles" +readonly LBR="${TEST_TMPDIR}/local-build-root" + +mkdir -p "${DISTDIR}" +mkdir -p foo/bar/baz +echo "test data" > foo/bar/baz/data.txt +tar cf "${DISTDIR}/foo-1.2.3.tar" foo 2>&1 +foocontent=$(git hash-object "${DISTDIR}/foo-1.2.3.tar") +echo "Foo archive has content ${foocontent}" + +# Setup sample repository config +touch ROOT +cat > repos.json <&1 + +# Remove distdir content +rm -rf "${DISTDIR}" +mkdir -p "${DISTDIR}" + +# Ask just-mr to fetch to the empty distdir +"${JUST_MR}" --local-build-root "${LBR}" --distdir "${DISTDIR}" fetch 2>&1 + +# Verify that the correct file is stored in the distdir +test -f "${DISTDIR}/foo-1.2.3.tar" +newfoocontent=$(git hash-object "${DISTDIR}/foo-1.2.3.tar") +echo "Foo archive has now content ${newfoocontent}" +test "${newfoocontent}" = "${foocontent}" + +echo OK -- cgit v1.2.3