From ae42d0cf824f6dd08eee400bf6c4ad01ecd4e567 Mon Sep 17 00:00:00 2001 From: Maksim Denisov Date: Thu, 19 Dec 2024 15:23:07 +0100 Subject: Test just-mr properly updates config for computed roots --- test/end-to-end/computed-roots/TARGETS | 7 ++ test/end-to-end/computed-roots/mr_take_over.sh | 122 +++++++++++++++++++++++++ 2 files changed, 129 insertions(+) create mode 100644 test/end-to-end/computed-roots/mr_take_over.sh diff --git a/test/end-to-end/computed-roots/TARGETS b/test/end-to-end/computed-roots/TARGETS index 4ac7dcb4..14e9a5e5 100644 --- a/test/end-to-end/computed-roots/TARGETS +++ b/test/end-to-end/computed-roots/TARGETS @@ -25,6 +25,12 @@ , "test": ["mr_computed_setup.sh"] , "deps": [["", "mr-tool-under-test"], ["", "tool-under-test"]] } +, "mr_take_over": + { "type": ["@", "rules", "shell/test", "script"] + , "name": ["mr_take_over"] + , "test": ["mr_take_over.sh"] + , "deps": [["", "mr-tool-under-test"], ["", "tool-under-test"]] + } , "error-reporting": { "type": ["@", "rules", "shell/test", "script"] , "name": ["error-reporting"] @@ -88,6 +94,7 @@ , "error-remote" , "error-reporting" , "mr_computed_setup" + , "mr_take_over" , "remote sharding" ] } diff --git a/test/end-to-end/computed-roots/mr_take_over.sh b/test/end-to-end/computed-roots/mr_take_over.sh new file mode 100644 index 00000000..e77dee8d --- /dev/null +++ b/test/end-to-end/computed-roots/mr_take_over.sh @@ -0,0 +1,122 @@ +#!/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 -e + +readonly ROOT="$(pwd)" +readonly LBRDIR="$TMPDIR/local-build-root" +readonly JUST="${ROOT}/bin/tool-under-test" +readonly JUST_MR="${ROOT}/bin/mr-tool-under-test" +readonly OUT="${ROOT}/out" + +readonly SRC_DIR="${ROOT}/src" +mkdir -p "${SRC_DIR}" +cat > "${SRC_DIR}/generate.py" <<'EOF' +import json +import sys + +COUNT = int(sys.argv[1]) +targets = {} +for i in range(COUNT): + targets["%d" % i] = {"type": "generic", "outs": ["%d.txt" %i], + "cmds": ["seq 0 %d > %d.txt" % (i, i)]} +targets[""] = {"type": "generic", + "deps": ["%d" % i for i in range(COUNT)], + "cmds": [" ".join(["cat"] + ["%d.txt" % i for i in range(COUNT)] + + ["> out"])], + "outs": ["out"]} +print (json.dumps(targets, indent=2)) +EOF + +readonly TARGETS_DIR="${ROOT}/targets" +mkdir -p "${TARGETS_DIR}" +cd "${TARGETS_DIR}" +cat > "TARGETS.collect" << EOF +{ "": {"type": "export", "target": "collect"} +, "collect": + { "type": "install" + , "deps": [["TREE", null, "."]] + } +} +EOF + +cat > TARGETS.compute <<'EOF' +{ "": {"type": "export", "target": "generate"} +, "generate": + { "type": "generic" + , "outs": ["TARGETS"] + , "deps": ["generate.py"] + , "cmds": + [ { "type": "join" + , "separator": " " + , "$1": + [ "python3" + , "generate.py" + , "10" + , ">" + , "TARGETS" + ] + } + ] + } +} +EOF + +mkdir -p "${ROOT}/main" +cd "${ROOT}/main" + +cat > repo-config.json <&1 +echo + +echo OK -- cgit v1.2.3