blob: ab37baf01ea536d76d91c056ae59fd9255da9515 [file] [log] [blame]
#!/bin/bash
# Copyright (C) 2024 The Android Open Source Project
#
# 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.
# Update f/b/r/TEST_MAPPING with all the ravenwood tests as presubmit.
#
# Note, before running it, make sure module-info.json is up-to-date by running
# (any) build.
set -e
# Tests that shouldn't be in presubmit.
EXEMPT='^(SystemUiRavenTests)$'
is_car() {
local module="$1"
# If the module name starts with "Car", then it's a test for "Car".
[[ "$module" =~ ^Car ]]
return $?
}
main() {
local script_name="${0##*/}"
local script_dir="${0%/*}"
local test_mapping="$script_dir/../TEST_MAPPING"
local test_mapping_bak="$script_dir/../TEST_MAPPING.bak"
local header="$(sed -ne '1,/AUTO-GENERATED-START/p' "$test_mapping")"
local footer="$(sed -ne '/AUTO-GENERATED-END/,$p' "$test_mapping")"
echo "Getting all tests"
local tests=( $("$script_dir/list-ravenwood-tests.sh" | grep -vP "$EXEMPT") )
local num_tests="${#tests[@]}"
if (( $num_tests == 0 )) ; then
echo "Something went wrong. No ravenwood tests detected." 1>&2
return 1
fi
echo "Tests: ${tests[@]}"
echo "Creating backup at $test_mapping_bak"
cp "$test_mapping" "$test_mapping_bak"
echo "Updating $test_mapping"
{
echo "$header"
echo " // DO NOT MODIFY MANUALLY"
echo " // Use scripts/$script_name to update it."
local i=0
while (( $i < $num_tests )) ; do
local comma=","
if (( $i == ($num_tests - 1) )); then
comma=""
fi
echo " {"
echo " \"name\": \"${tests[$i]}\","
if is_car "${tests[$i]}"; then
echo ' "keywords": ["automotive_code_coverage"],'
fi
echo " \"host\": true"
echo " }$comma"
i=$(( $i + 1 ))
done
echo "$footer"
} >"$test_mapping"
if cmp "$test_mapping_bak" "$test_mapping" ; then
echo "No change detecetd."
return 0
fi
echo "Updated $test_mapping"
# `|| true` is needed because of `set -e`.
diff -u "$test_mapping_bak" "$test_mapping" || true
return 0
}
main