From f1b75a23772de79173e487a7c512ac478d7553f3 Mon Sep 17 00:00:00 2001 From: Yuntao Xu Date: Wed, 23 Jun 2021 17:56:01 -0700 Subject: [PATCH] convert BUILD_CTS_SUPPORT_PACKAGE in mk files 1. Modified the logic of the androidmk tool, to convert the BUILD_CTS_SUPPORT_PACKAGE field to the android_test_helper_app module type rather than android_test; 2. Updated the unit tests as well. Bug: 191907322 Test: m androidmk Test: TreeHugger Change-Id: Iabff299f6d043521481ef1af457c708353559823 --- androidmk/androidmk/androidmk_test.go | 2 +- bpfix/bpfix/bpfix.go | 14 +++++++++++--- bpfix/bpfix/bpfix_test.go | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/androidmk/androidmk/androidmk_test.go b/androidmk/androidmk/androidmk_test.go index 067dcba35..02ab89d0b 100644 --- a/androidmk/androidmk/androidmk_test.go +++ b/androidmk/androidmk/androidmk_test.go @@ -794,7 +794,7 @@ LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS) include $(BUILD_CTS_SUPPORT_PACKAGE) `, expected: ` -android_test { +android_test_helper_app { name: "FooTest", defaults: ["cts_support_defaults"], test_suites: ["cts"], diff --git a/bpfix/bpfix/bpfix.go b/bpfix/bpfix/bpfix.go index fae610189..96400241e 100644 --- a/bpfix/bpfix/bpfix.go +++ b/bpfix/bpfix/bpfix.go @@ -319,7 +319,7 @@ func rewriteCtsModuleTypes(f *Fixer) error { var defStr string switch mod.Type { case "cts_support_package": - mod.Type = "android_test" + mod.Type = "android_test_helper_app" defStr = "cts_support_defaults" case "cts_package": mod.Type = "android_test" @@ -622,12 +622,20 @@ func rewriteAndroidmkPrebuiltEtc(f *Fixer) error { func rewriteAndroidTest(f *Fixer) error { for _, def := range f.tree.Defs { mod, ok := def.(*parser.Module) - if !(ok && mod.Type == "android_test") { + if !ok { + // The definition is not a module. + continue + } + if mod.Type != "android_test" && mod.Type != "android_test_helper_app" { + // The module is not an android_test or android_test_helper_app. continue } // The rewriter converts LOCAL_MODULE_PATH attribute into a struct attribute // 'local_module_path'. For the android_test module, it should be $(TARGET_OUT_DATA_APPS), // that is, `local_module_path: { var: "TARGET_OUT_DATA_APPS"}` + // 1. if the `key: val` pair matches, (key is `local_module_path`, + // and val is `{ var: "TARGET_OUT_DATA_APPS"}`), this property is removed; + // 2. o/w, an error msg is thrown. const local_module_path = "local_module_path" if prop_local_module_path, ok := mod.GetProperty(local_module_path); ok { removeProperty(mod, local_module_path) @@ -637,7 +645,7 @@ func rewriteAndroidTest(f *Fixer) error { continue } return indicateAttributeError(mod, "filename", - "Only LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS) is allowed for the android_test") + "Only LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS) is allowed for the %s", mod.Type) } } return nil diff --git a/bpfix/bpfix/bpfix_test.go b/bpfix/bpfix/bpfix_test.go index 61dfe1af4..ebfeb22c7 100644 --- a/bpfix/bpfix/bpfix_test.go +++ b/bpfix/bpfix/bpfix_test.go @@ -636,7 +636,7 @@ func TestRewriteCtsModuleTypes(t *testing.T) { } `, out: ` - android_test { + android_test_helper_app { name: "foo", defaults: ["cts_support_defaults"], }