From bac42ee6f84248309e082845e7ea835527cda39b Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Fri, 23 Dec 2022 15:34:10 +0100 Subject: Test that just-mr does not rely on CAS ... and, instead, stores all needed information in git and CAS-independent index files. --- test/end-to-end/TARGETS | 1 + test/end-to-end/just-mr/TARGETS | 9 ++++ test/end-to-end/just-mr/cas-independent.sh | 87 ++++++++++++++++++++++++++++++ 3 files changed, 97 insertions(+) create mode 100644 test/end-to-end/just-mr/TARGETS create mode 100644 test/end-to-end/just-mr/cas-independent.sh (limited to 'test') diff --git a/test/end-to-end/TARGETS b/test/end-to-end/TARGETS index 5eb95271..27a8c755 100644 --- a/test/end-to-end/TARGETS +++ b/test/end-to-end/TARGETS @@ -17,6 +17,7 @@ , [["./", "build-fails", "TESTS"], "build-fails"] , [["./", "remote-execution", "TESTS"], "remote-execution"] , [["./", "target-cache", "TESTS"], "target-cache"] + , [["./", "just-mr", "TESTS"], "just-mr"] ] } } diff --git a/test/end-to-end/just-mr/TARGETS b/test/end-to-end/just-mr/TARGETS new file mode 100644 index 00000000..db7b2621 --- /dev/null +++ b/test/end-to-end/just-mr/TARGETS @@ -0,0 +1,9 @@ +{ "cas-independent": + { "type": ["@", "rules", "shell/test", "script"] + , "name": ["cas-independent"] + , "test": ["cas-independent.sh"] + , "deps": [["test/end-to-end", "mr-tool-under-test"]] + } +, "TESTS": + {"type": "install", "tainted": ["test"], "deps": ["cas-independent"]} +} diff --git a/test/end-to-end/just-mr/cas-independent.sh b/test/end-to-end/just-mr/cas-independent.sh new file mode 100644 index 00000000..04e03687 --- /dev/null +++ b/test/end-to-end/just-mr/cas-independent.sh @@ -0,0 +1,87 @@ +#!/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}" + +# get the tree identifier for later sanity check +cd foo +git init +git config user.name 'N.O.Body' +git config user.email 'nobody@example.org' +git add . +git commit -m 'Just care about the tree' 2>&1 +tree_id=$(git log -n 1 --format='%T') +cd .. +rm -rf foo +echo "foo as tree ${tree_id}" + +# Setup sample repository config +touch ROOT +cat > repos.json <