diff options
author | Klaus Aehlig <klaus.aehlig@huawei.com> | 2022-12-06 15:14:30 +0100 |
---|---|---|
committer | Klaus Aehlig <klaus.aehlig@huawei.com> | 2022-12-07 12:38:28 +0100 |
commit | d17ba8df8ef77eddeb737ccf14166a9b4da681ed (patch) | |
tree | d65c444df7a2547898ef703549e7f9ae7ab36cf4 /test | |
parent | 1174c013226e560820f44a637b9744d9606b414a (diff) | |
download | justbuild-d17ba8df8ef77eddeb737ccf14166a9b4da681ed.tar.gz |
file_gen rule: fix computation of effective configuration
The dependencies requested in order to read their "outs" or
"runfiles" also contribute to the effective configuration.
Diffstat (limited to 'test')
-rw-r--r-- | test/end-to-end/built-in-rules/TARGETS | 11 | ||||
-rwxr-xr-x | test/end-to-end/built-in-rules/filegen_config.sh | 53 |
2 files changed, 63 insertions, 1 deletions
diff --git a/test/end-to-end/built-in-rules/TARGETS b/test/end-to-end/built-in-rules/TARGETS index 4991c5c3..0f9b7a5a 100644 --- a/test/end-to-end/built-in-rules/TARGETS +++ b/test/end-to-end/built-in-rules/TARGETS @@ -4,6 +4,15 @@ , "test": ["generic_out_dirs.sh"] , "deps": [["test/end-to-end", "tool-under-test"]] } +, "filegen_config": + { "type": ["@", "rules", "shell/test", "script"] + , "name": ["filegen_config"] + , "test": ["filegen_config.sh"] + , "deps": [["test/end-to-end", "tool-under-test"]] + } , "TESTS": - {"type": "install", "tainted": ["test"], "deps": ["generic_out_dirs"]} + { "type": "install" + , "tainted": ["test"] + , "deps": ["generic_out_dirs", "filegen_config"] + } } diff --git a/test/end-to-end/built-in-rules/filegen_config.sh b/test/end-to-end/built-in-rules/filegen_config.sh new file mode 100755 index 00000000..c0fb72c7 --- /dev/null +++ b/test/end-to-end/built-in-rules/filegen_config.sh @@ -0,0 +1,53 @@ +#!/bin/bash +# 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 + +touch ROOT + +cat <<'EOF' > TARGETS +{ "": + { "type": "file_gen" + , "name": "read-runfiles" + , "data": + { "type": "join" + , "separator": ";" + , "$1": {"type": "runfiles", "dep": "uses config"} + } + , "deps": ["uses config"] + } +, "uses config": + { "type": "file_gen" + , "arguments_config": ["NAME"] + , "name": {"type": "var", "name": "NAME", "default": "null"} + , "data": "irrelevant" + } +} +EOF + +bin/tool-under-test analyse -D '{"NAME": "here-be-dragons"}' \ + --dump-targets targets.json --dump-blobs blobs.json 2>&1 +echo +echo "Blobs" +cat blobs.json +[ $(jq '. == ["here-be-dragons"]' blobs.json) = "true" ] +echo + +echo "Targets" +cat targets.json +[ $(jq '."@"."".""."" == [{"NAME": "here-be-dragons"}]' targets.json) = "true" ] + +echo OK |