| #!/usr/bin/env bash |
| # |
| # Copyright 2021 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| set -e |
| |
| usage="Run testplan.go on an example SourceTestPlan using Docker. |
| |
| This demonstrates running the gcr.io/chromeos-bot/testplan Docker image. Bind |
| mounts are used for the input and output of the testplan tool. |
| |
| Flags are passed through to testplan.go's generate command, |
| e.g. '-alsologtostderr'. |
| |
| Usage: ${0} [options] <testplan.go generate flags> |
| |
| Options: |
| -h, --help This help output." |
| |
| while [[ $# -ne 0 ]]; do |
| case $1 in |
| -h|--help) |
| exec printf '%b\n' "${usage}" |
| ;; |
| *) |
| ARGS+=( "$1" ) |
| ;; |
| esac |
| shift |
| done |
| set -- "${ARGS[@]}" "$@" |
| |
| set -x |
| |
| script_dir="$(dirname "$(realpath -e "${BASH_SOURCE[0]}")")" |
| |
| cd "${script_dir}" |
| |
| input_tmpdir=$(mktemp -d) |
| output_tmpdir=$(mktemp -d) |
| readonly input_tmpdir output_tmpdir |
| |
| trap 'rm -rf ${input_tmpdir}' EXIT |
| |
| config_internal_path=$(realpath ../../../../../../../config-internal) |
| readonly config_internal_path |
| |
| cp "${config_internal_path}/hw_design/generated/flattened.binaryproto" "${input_tmpdir}" |
| cp "${config_internal_path}/build/generated/build_metadata.jsonproto" "${input_tmpdir}" |
| cp "${config_internal_path}/dut_attributes/generated/dut_attributes.jsonproto" "${input_tmpdir}" |
| cp ../cmd/example_source_test_plan.textpb "${input_tmpdir}" |
| |
| sudo docker run \ |
| --mount type=bind,source="${input_tmpdir}",target=/input,readonly \ |
| --mount type=bind,source="${output_tmpdir}",target=/output \ |
| "gcr.io/chromeos-bot/testplan:local-${USER}" generate \ |
| -plan /input/example_source_test_plan.textpb \ |
| -dutattributes /input/dut_attributes.jsonproto \ |
| -buildmetadata /input/build_metadata.jsonproto \ |
| -flatconfiglist /input/flattened.binaryproto \ |
| -out /output/coverage_rules.jsonproto \ |
| -textsummaryout /output/summary.txt \ |
| "$@" |
| |
| echo "Output written to host at ${output_tmpdir}" |