diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/end-to-end/execution-service/TARGETS | 12 | ||||
-rwxr-xr-x | test/end-to-end/execution-service/tree_inputs.sh | 53 | ||||
-rw-r--r-- | test/end-to-end/target-tests/TARGETS | 7 | ||||
-rwxr-xr-x | test/end-to-end/target-tests/tree-inputs.sh | 45 |
4 files changed, 116 insertions, 1 deletions
diff --git a/test/end-to-end/execution-service/TARGETS b/test/end-to-end/execution-service/TARGETS index a5ae6322..2d4b63b7 100644 --- a/test/end-to-end/execution-service/TARGETS +++ b/test/end-to-end/execution-service/TARGETS @@ -4,5 +4,15 @@ , "test": ["simple_build.sh"] , "deps": [["end-to-end", "tool-under-test"]] } -, "TESTS": {"type": "install", "tainted": ["test"], "deps": ["simple_build"]} +, "tree_inputs": + { "type": ["end-to-end", "with remote"] + , "name": ["tree_inputs"] + , "test": ["tree_inputs.sh"] + , "deps": [["end-to-end", "tool-under-test"]] + } +, "TESTS": + { "type": "install" + , "tainted": ["test"] + , "deps": ["simple_build", "tree_inputs"] + } } diff --git a/test/end-to-end/execution-service/tree_inputs.sh b/test/end-to-end/execution-service/tree_inputs.sh new file mode 100755 index 00000000..f6491f50 --- /dev/null +++ b/test/end-to-end/execution-service/tree_inputs.sh @@ -0,0 +1,53 @@ +#!/bin/sh +# Copyright 2023 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="${PWD}/bin/tool-under-test" +readonly LBRDIR="${PWD}/local-build-root" + +touch ROOT + +# Check if we can collect and stage empty trees + +cat > TARGETS <<'EOF' +{ "make_trees": + { "type": "generic" + , "cmds": ["mkdir -p foo bar/baz"] + , "out_dirs": ["."] + } +, "read_trees": + { "type": "generic" + , "deps": ["make_trees"] + , "cmds": ["set -e", "ls -l foo", "ls -l bar/baz", "echo SUCCESS > result"] + , "outs": ["result"] + } +} +EOF + +REMOTE_EXECUTION_ARGS="-r ${REMOTE_EXECUTION_ADDRESS}" +if [ "${REMOTE_EXECUTION_PROPERTIES:-}" != "" ]; then + REMOTE_EXECUTION_ARGS="${REMOTE_EXECUTION_ARGS} --remote-execution-property ${REMOTE_EXECUTION_PROPERTIES}" +fi +if [ -n "${COMPATIBLE:-}" ]; then + REMOTE_EXECUTION_ARGS="${REMOTE_EXECUTION_ARGS} --compatible" +fi + +"${JUST}" install ${REMOTE_EXECUTION_ARGS} --local-build-root="${LBRDIR}" -o . read_trees 2>&1 + +grep SUCCESS result + +echo DONE diff --git a/test/end-to-end/target-tests/TARGETS b/test/end-to-end/target-tests/TARGETS index d45db9eb..67d40542 100644 --- a/test/end-to-end/target-tests/TARGETS +++ b/test/end-to-end/target-tests/TARGETS @@ -34,6 +34,12 @@ , "test": ["configure-vars.sh"] , "deps": [["end-to-end", "tool-under-test"]] } +, "tree inputs": + { "type": ["@", "rules", "shell/test", "script"] + , "name": ["tree-inputs"] + , "test": ["tree-inputs.sh"] + , "deps": [["end-to-end", "tool-under-test"]] + } , "TESTS": { "type": "install" , "tainted": ["test"] @@ -44,6 +50,7 @@ , "glob expansion" , "configure target name" , "configure variables" + , "tree inputs" ] } } diff --git a/test/end-to-end/target-tests/tree-inputs.sh b/test/end-to-end/target-tests/tree-inputs.sh new file mode 100755 index 00000000..edbe7f7e --- /dev/null +++ b/test/end-to-end/target-tests/tree-inputs.sh @@ -0,0 +1,45 @@ +#!/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 -e + +mkdir -p .root + +mkdir -p src +touch src/ROOT + +# Check if we can collect and stage empty trees + +cat > src/TARGETS <<'EOF' +{ "make_trees": + { "type": "generic" + , "cmds": ["mkdir -p foo bar/baz"] + , "out_dirs": ["."] + } +, "read_trees": + { "type": "generic" + , "deps": ["make_trees"] + , "cmds": ["set -e", "ls -l foo", "ls -l bar/baz", "echo SUCCESS > result"] + , "outs": ["result"] + } +} +EOF + +./bin/tool-under-test install -o out --workspace-root src \ + --local-build-root .root . read_trees 2>&1 + +grep SUCCESS out/result + +echo DONE |