diff options
author | Liz Kammer <eakammer@google.com> | 2020-05-21 16:49:56 -0700 |
---|---|---|
committer | Liz Kammer <eakammer@google.com> | 2020-05-26 09:12:42 -0700 |
commit | 6e85e4c2bc6896e7915d5b9d599f49fcd4001e66 (patch) | |
tree | 967baeb75fc20f9878d69a5961983b0a81215085 /androidmk | |
parent | 3f82e2426ed0bec8ba04ac3d57bf90270f446b61 (diff) |
Support preprocessed prebuilt tests in androidmk
Adds support to translate app prebuilt tests to android_test_import and
LOCAL_REPLACE_PREBUILT_APK_INSTALLED to preprocessed property.
Test: androidmk_test.go, bpfix_test.go
Bug: 155412211
Change-Id: I77c07c684125adf228ba91911998823a68b3a65d
Diffstat (limited to 'androidmk')
-rw-r--r-- | androidmk/androidmk/android.go | 50 | ||||
-rw-r--r-- | androidmk/androidmk/androidmk_test.go | 25 |
2 files changed, 53 insertions, 22 deletions
diff --git a/androidmk/androidmk/android.go b/androidmk/androidmk/android.go index 5a62324c1..eaf06c59f 100644 --- a/androidmk/androidmk/android.go +++ b/androidmk/androidmk/android.go @@ -40,26 +40,31 @@ type variableAssignmentContext struct { append bool } +var trueValue = &bpparser.Bool{ + Value: true, +} + var rewriteProperties = map[string](func(variableAssignmentContext) error){ // custom functions - "LOCAL_32_BIT_ONLY": local32BitOnly, - "LOCAL_AIDL_INCLUDES": localAidlIncludes, - "LOCAL_ASSET_DIR": localizePathList("asset_dirs"), - "LOCAL_C_INCLUDES": localIncludeDirs, - "LOCAL_EXPORT_C_INCLUDE_DIRS": exportIncludeDirs, - "LOCAL_JARJAR_RULES": localizePath("jarjar_rules"), - "LOCAL_LDFLAGS": ldflags, - "LOCAL_MODULE_CLASS": prebuiltClass, - "LOCAL_MODULE_STEM": stem, - "LOCAL_MODULE_HOST_OS": hostOs, - "LOCAL_RESOURCE_DIR": localizePathList("resource_dirs"), - "LOCAL_SANITIZE": sanitize(""), - "LOCAL_SANITIZE_DIAG": sanitize("diag."), - "LOCAL_STRIP_MODULE": strip(), - "LOCAL_CFLAGS": cflags, - "LOCAL_UNINSTALLABLE_MODULE": invert("installable"), - "LOCAL_PROGUARD_ENABLED": proguardEnabled, - "LOCAL_MODULE_PATH": prebuiltModulePath, + "LOCAL_32_BIT_ONLY": local32BitOnly, + "LOCAL_AIDL_INCLUDES": localAidlIncludes, + "LOCAL_ASSET_DIR": localizePathList("asset_dirs"), + "LOCAL_C_INCLUDES": localIncludeDirs, + "LOCAL_EXPORT_C_INCLUDE_DIRS": exportIncludeDirs, + "LOCAL_JARJAR_RULES": localizePath("jarjar_rules"), + "LOCAL_LDFLAGS": ldflags, + "LOCAL_MODULE_CLASS": prebuiltClass, + "LOCAL_MODULE_STEM": stem, + "LOCAL_MODULE_HOST_OS": hostOs, + "LOCAL_RESOURCE_DIR": localizePathList("resource_dirs"), + "LOCAL_SANITIZE": sanitize(""), + "LOCAL_SANITIZE_DIAG": sanitize("diag."), + "LOCAL_STRIP_MODULE": strip(), + "LOCAL_CFLAGS": cflags, + "LOCAL_UNINSTALLABLE_MODULE": invert("installable"), + "LOCAL_PROGUARD_ENABLED": proguardEnabled, + "LOCAL_MODULE_PATH": prebuiltModulePath, + "LOCAL_REPLACE_PREBUILT_APK_INSTALLED": prebuiltPreprocessed, // composite functions "LOCAL_MODULE_TAGS": includeVariableIf(bpVariable{"tags", bpparser.ListType}, not(valueDumpEquals("optional"))), @@ -495,10 +500,6 @@ func hostOs(ctx variableAssignmentContext) error { Value: false, } - trueValue := &bpparser.Bool{ - Value: true, - } - if inList("windows") { err = setVariable(ctx.file, ctx.append, "target.windows", "enabled", trueValue, true) } @@ -704,6 +705,11 @@ func ldflags(ctx variableAssignmentContext) error { return nil } +func prebuiltPreprocessed(ctx variableAssignmentContext) error { + ctx.mkvalue = ctx.mkvalue.Clone() + return setVariable(ctx.file, false, ctx.prefix, "preprocessed", trueValue, true) +} + func cflags(ctx variableAssignmentContext) error { // The Soong replacement for CFLAGS doesn't need the same extra escaped quotes that were present in Make ctx.mkvalue = ctx.mkvalue.Clone() diff --git a/androidmk/androidmk/androidmk_test.go b/androidmk/androidmk/androidmk_test.go index d9bde9407..54bd586f9 100644 --- a/androidmk/androidmk/androidmk_test.go +++ b/androidmk/androidmk/androidmk_test.go @@ -1342,6 +1342,31 @@ android_app_import { `, }, { + desc: "android_test_import prebuilt", + in: ` + include $(CLEAR_VARS) + LOCAL_MODULE := foo + LOCAL_SRC_FILES := foo.apk + LOCAL_MODULE_CLASS := APPS + LOCAL_MODULE_TAGS := tests + LOCAL_MODULE_SUFFIX := .apk + LOCAL_CERTIFICATE := PRESIGNED + LOCAL_REPLACE_PREBUILT_APK_INSTALLED := $(LOCAL_PATH)/foo.apk + LOCAL_COMPATIBILITY_SUITE := cts + include $(BUILD_PREBUILT) + `, + expected: ` +android_test_import { + name: "foo", + srcs: ["foo.apk"], + + certificate: "PRESIGNED", + preprocessed: true, + test_suites: ["cts"], +} +`, + }, + { desc: "undefined_boolean_var", in: ` include $(CLEAR_VARS) |