blob: 4212b3a8a77611bb2b80f361983a07441e1018c2 [file] [log] [blame]
#!/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.
#
# Runs testplan.go on an example SourceTestPlan, with config from
# config-internal.
set -e
usage="Run testplan.go on an example SourceTestPlan.
This script is just for seeing an example run of testplan.go an experimenting
with changes difficult to unit test (e.g. logging). It directly calls 'go run'
outside of Portage, so will fail if dependencies are not installed.
This script uses the BuildSummaryList and DutAttributesList checked into
config-internal.
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[@]}" "$@"
script_dir="$(dirname "$(realpath -e "${BASH_SOURCE[0]}")")"
cd "${script_dir}"
config_internal_dir="$(realpath -e ../../../../../../../config-internal)"
dut_attributes="${config_internal_dir}/dut_attributes/generated/dut_attributes.jsonproto"
build_metadata="${config_internal_dir}/build/generated/build_metadata.jsonproto"
flat_config_list="${config_internal_dir}/hw_design/generated/flattened.binaryproto"
if [[ ! -f ${dut_attributes} ]]; then
echo "Expected to find DutAttributesList at ${dut_attributes}"
exit 1
else
echo "Using DutAttributeList at ${dut_attributes}"
fi
if [[ ! -f ${build_metadata} ]]; then
echo "Expected to find BuildMetadataList at ${build_metadata}"
exit 1
else
echo "Using BuildMetadataList at ${build_metadata}"
fi
if [[ ! -f ${flat_config_list} ]]; then
echo "Expected to find FlatConfigList at ${flat_config_list}"
exit 1
else
echo "Using FlatConfigList at ${flat_config_list}"
fi
outDir=$(mktemp -d)
out=${outDir}/coverage_rules.jsonproto
textSummaryOut=${outDir}/coverage_rules_summary.txt
echo "Running testplan.go, writing CoverageRules to ${out}"
set -x
go run testplan.go generate \
-plan example_source_test_plan.textpb \
-dutattributes "${dut_attributes}" \
-buildmetadata "${build_metadata}" \
-flatconfiglist "${flat_config_list}" \
-out "${out}" \
-textsummaryout "${textSummaryOut}" \
"$@"