This script runs some useful integration tests, but is currently broken at ToT. This CL enables us to rerun this script successfully. Details 1. Remove the scripts related to bp2build/b/mixed_builds. These modes have been/are on the verge of deletion from soong 2. Remove the comparisision scripts for soong and bazel built artifcats, for the same reason 3. Add a TARGET_RELEASE to androidmk_test.sh 4. Add a TARGET_PRODUCT to o/s/build.ninja, since the generated .ninja files now have a product-specific suffix. 5. Remove a test that checks that globs are not generated in the first clean run. We always generate the glob file now (aosp/2893286) Test: build/soong/tests/run_integration_tests.sh Change-Id: I39f6706ab2a81a7b1b2e90d43195bc3e2c7a5c08
137 lines
3.1 KiB
Bash
Executable File
137 lines
3.1 KiB
Bash
Executable File
#!/bin/bash -eu
|
|
|
|
set -o pipefail
|
|
|
|
# How to run: bash path-to-script/androidmk_test.sh
|
|
# Tests of converting license functionality of the androidmk tool
|
|
REAL_TOP="$(readlink -f "$(dirname "$0")"/../../..)"
|
|
"$REAL_TOP/build/soong/soong_ui.bash" --make-mode TARGET_RELEASE=trunk_staging androidmk
|
|
|
|
source "$(dirname "$0")/lib.sh"
|
|
|
|
# Expect to create a new license module
|
|
function test_rewrite_license_property_inside_current_directory {
|
|
setup
|
|
|
|
# Create an Android.mk file
|
|
mkdir -p a/b
|
|
cat > a/b/Android.mk <<'EOF'
|
|
include $(CLEAR_VARS)
|
|
LOCAL_MODULE := foo
|
|
LOCAL_LICENSE_KINDS := license_kind1 license_kind2
|
|
LOCAL_LICENSE_CONDITIONS := license_condition
|
|
LOCAL_NOTICE_FILE := $(LOCAL_PATH)/license_notice1 $(LOCAL_PATH)/license_notice2
|
|
include $(BUILD_PACKAGE)
|
|
EOF
|
|
|
|
# Create an expected Android.bp file for the module "foo"
|
|
cat > a/b/Android.bp <<'EOF'
|
|
package {
|
|
// See: http://go/android-license-faq
|
|
default_applicable_licenses: [
|
|
"a_b_license",
|
|
],
|
|
}
|
|
|
|
license {
|
|
name: "a_b_license",
|
|
visibility: [":__subpackages__"],
|
|
license_kinds: [
|
|
"license_kind1",
|
|
"license_kind2",
|
|
],
|
|
license_text: [
|
|
"license_notice1",
|
|
"license_notice2",
|
|
],
|
|
}
|
|
|
|
android_app {
|
|
name: "foo",
|
|
}
|
|
EOF
|
|
|
|
run_androidmk_test "a/b/Android.mk" "a/b/Android.bp"
|
|
}
|
|
|
|
# Expect to reference to an existing license module
|
|
function test_rewrite_license_property_outside_current_directory {
|
|
setup
|
|
|
|
# Create an Android.mk file
|
|
mkdir -p a/b/c/d
|
|
cat > a/b/c/d/Android.mk <<'EOF'
|
|
include $(CLEAR_VARS)
|
|
LOCAL_MODULE := foo
|
|
LOCAL_LICENSE_KINDS := license_kind1 license_kind2
|
|
LOCAL_LICENSE_CONDITIONS := license_condition
|
|
LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../license_notice1 $(LOCAL_PATH)/../../license_notice2
|
|
include $(BUILD_PACKAGE)
|
|
EOF
|
|
|
|
# Create an expected (input) Android.bp file at a/b/
|
|
cat > a/b/Android.bp <<'EOF'
|
|
package {
|
|
// See: http://go/android-license-faq
|
|
default_applicable_licenses: [
|
|
"a_b_license",
|
|
],
|
|
}
|
|
|
|
license {
|
|
name: "a_b_license",
|
|
visibility: [":__subpackages__"],
|
|
license_kinds: [
|
|
"license_kind1",
|
|
"license_kind2",
|
|
],
|
|
license_text: [
|
|
"license_notice1",
|
|
"license_notice2",
|
|
],
|
|
}
|
|
|
|
android_app {
|
|
name: "bar",
|
|
}
|
|
EOF
|
|
|
|
# Create an expected (output) Android.bp file for the module "foo"
|
|
cat > a/b/c/d/Android.bp <<'EOF'
|
|
package {
|
|
// See: http://go/android-license-faq
|
|
default_applicable_licenses: [
|
|
"a_b_license",
|
|
],
|
|
}
|
|
|
|
android_app {
|
|
name: "foo",
|
|
}
|
|
EOF
|
|
|
|
run_androidmk_test "a/b/c/d/Android.mk" "a/b/c/d/Android.bp"
|
|
}
|
|
|
|
function run_androidmk_test {
|
|
export ANDROID_BUILD_TOP="$MOCK_TOP"
|
|
local -r androidmk=("$REAL_TOP"/*/host/*/bin/androidmk)
|
|
if [[ ${#androidmk[@]} -ne 1 ]]; then
|
|
fail "Multiple androidmk binaries found: ${androidmk[*]}"
|
|
fi
|
|
local -r out=$("${androidmk[0]}" "$1")
|
|
local -r expected=$(<"$2")
|
|
|
|
if [[ "$out" != "$expected" ]]; then
|
|
ANDROID_BUILD_TOP="$REAL_TOP"
|
|
cleanup_mock_top
|
|
fail "The output is not the same as the expected"
|
|
fi
|
|
|
|
ANDROID_BUILD_TOP="$REAL_TOP"
|
|
cleanup_mock_top
|
|
echo "Succeeded"
|
|
}
|
|
|
|
scan_and_run_tests
|