123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- #!/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 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
|