diff options
author | Klaus Aehlig <klaus.aehlig@huawei.com> | 2024-08-28 14:40:17 +0200 |
---|---|---|
committer | Klaus Aehlig <klaus.aehlig@huawei.com> | 2024-08-28 15:45:10 +0200 |
commit | 3c40c9b61be181d71d3d7f970300e63953fb3737 (patch) | |
tree | 898520770b462d8d840f928dd1ba32629b3967c9 | |
parent | 07e9ec60fe1e203d5e28133d7cc2ffb292df0846 (diff) | |
download | justbuild-3c40c9b61be181d71d3d7f970300e63953fb3737.tar.gz |
Add basic sanity check on the default output
-rw-r--r-- | test/end-to-end/cli/TARGETS | 9 | ||||
-rw-r--r-- | test/end-to-end/cli/output.sh | 60 |
2 files changed, 68 insertions, 1 deletions
diff --git a/test/end-to-end/cli/TARGETS b/test/end-to-end/cli/TARGETS index 5b1e8370..c449a2d4 100644 --- a/test/end-to-end/cli/TARGETS +++ b/test/end-to-end/cli/TARGETS @@ -73,6 +73,13 @@ , "test": ["describe.sh"] , "deps": [["", "tool-under-test"]] } +, "output": + { "type": ["@", "rules", "shell/test", "script"] + , "name": ["output"] + , "test": ["output.sh"] + , "deps": [["", "tool-under-test"], ["", "mr-tool-under-test"]] + , "keep": ["log"] + } , "TESTS": { "type": ["@", "rules", "test", "suite"] , "arguments_config": ["TEST_BOOTSTRAP_JUST_MR"] @@ -94,7 +101,7 @@ , { "type": "if" , "cond": {"type": "var", "name": "TEST_BOOTSTRAP_JUST_MR"} , "then": [] - , "else": ["just-mr reporting", "log limit"] + , "else": ["just-mr reporting", "log limit", "output"] } ] } diff --git a/test/end-to-end/cli/output.sh b/test/end-to-end/cli/output.sh new file mode 100644 index 00000000..f77dfad6 --- /dev/null +++ b/test/end-to-end/cli/output.sh @@ -0,0 +1,60 @@ +#!/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 -eu + +ROOT="$(pwd)" +JUST="${ROOT}/bin/tool-under-test" +JUST_MR="${ROOT}/bin/mr-tool-under-test" +LBR="${TEST_TMPDIR}/build-root" +LOG="${ROOT}/log" + +mkdir work +cd work +touch ROOT + +cat > repos.json <<'EOF' +{"repositories": {"": {"repository": {"type": "file", "path": "."}}}} +EOF + +cat > TARGETS <<'EOF' +{ "generic": + { "type": "generic" + , "outs": ["hello.txt"] + , "cmds": ["echo Hello World > hello.txt"] + } +, "": {"type": "install", "files": {"generic": "generic"}} +} +EOF + +${JUST_MR} --norc -L '["env", "PATH='"${PATH}"'"]' --local-build-root "${LBR}" \ + --just "${JUST}" \ + -f "${LOG}" build 2>&1 +echo + +# Sanity check on verbosity of output + +## By default, we should be at a log level reporting resulting artifacts +HELLO_BLOB_ID=$(echo Hello World | git hash-object --stdin) +grep -i $HELLO_BLOB_ID "${LOG}" + +## This build should not cause any errors or warnings +grep -i error "${LOG}" && exit 1 || : +grep -i warn "${LOG}" && exit 1 || : + +## Such a simple build should not have an overly long log +[ $(cat "${LOG}" | wc -l) -lt 100 ] + +echo OK |