diff options
author | Patrick Georgi <pgeorgi@google.com> | 2021-02-10 19:49:15 +0100 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2021-02-11 20:49:27 +0000 |
commit | fe5cf512587244558565685904b21be3b859e55a (patch) | |
tree | c191efcdf8bd84e14d75e3c338851b527eb286ff | |
parent | 373769f1030fd4f5f350229c5bfd177945caae98 (diff) | |
download | coreboot-fe5cf512587244558565685904b21be3b859e55a.tar.xz |
util/abuild: Ensure that non-Chrome OS builds are non-Chrome OS
Sometimes boards enable it by default, making the Kconfig option
impossible to disable without messing with the Kconfig files. This
shouldn't happen, so report on such occurrences early.
TEST=Tried building GOOGLE_KOHAKU through abuild with -x, without
-x and both cases after having added a "select CHROMEOS" for testing
and it failed in the "without -x with select" scenario while properly
configuring and passing all other builds.
Change-Id: Ieb6bcbf3e9ca8cd4ced85c7c9ffaa39505f5a9b7
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/50494
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
-rwxr-xr-x | util/abuild/abuild | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/util/abuild/abuild b/util/abuild/abuild index 408de12e7a..0b7b05c551 100755 --- a/util/abuild/abuild +++ b/util/abuild/abuild @@ -330,14 +330,23 @@ function check_config local BUILD_DIR="$1" local TEST_TYPE="$2" local TEST_STRING="$3" + local NEGATE="$4" local CONFIG_FILE="$BUILD_DIR/config.build" local CONFIG_LOG="$BUILD_DIR/config.log" - if ! grep -q "$TEST_STRING" "$CONFIG_FILE"; then - echo "config file: $CONFIG_FILE has incorrect $TEST_TYPE" - echo "Error: Expected '$TEST_STRING' in config file." >> "$CONFIG_LOG" - return 1 + if [ -z "$NEGATE" ]; then + if ! grep -q "$TEST_STRING" "$CONFIG_FILE"; then + echo "config file: $CONFIG_FILE has incorrect $TEST_TYPE" + echo "Error: Expected '$TEST_STRING' in config file." >> "$CONFIG_LOG" + return 1 + fi + else + if grep -q "$TEST_STRING" "$CONFIG_FILE"; then + echo "config file: $CONFIG_FILE has incorrect $TEST_TYPE" + echo "Error: Expected not to see '$TEST_STRING' in config file." >> "$CONFIG_LOG" + return 1 + fi fi return 0 @@ -443,7 +452,17 @@ function build_config check_config "$build_dir" "vendor" "CONFIG_VENDOR_$(mainboard_vendor "${MAINBOARD}")=y" local VENDOR_OK=$? - if [ $BUILDENV_CREATED -ne 0 ] || [ $MAINBOARD_OK -ne 0 ] || [ $VENDOR_OK -ne 0 ]; then + if [ "$chromeos" = false ]; then + # Skip this rule for configs created from templates that already + # come with CHROMEOS enabled. + grep -q "^CONFIG_CHROMEOS=y" ${config_file:-/dev/null} || \ + check_config "$build_dir" "Chrome OS" "CONFIG_CHROMEOS=y" negate + local FORCE_ENABLED_CROS=$? + else + local FORCE_ENABLED_CROS=0 + fi + + if [ $BUILDENV_CREATED -ne 0 ] || [ $MAINBOARD_OK -ne 0 ] || [ $VENDOR_OK -ne 0 ] || [ $FORCE_ENABLED_CROS -eq 1 ]; then junit " <testcase classname='board${testclass/#/.}' name='$BUILD_NAME' >" junit "<failure type='BuildFailed'>" |