aboutsummaryrefslogtreecommitdiff
path: root/rules/apex
diff options
context:
space:
mode:
authorZi Wang <mrziwang@google.com>2023-03-17 12:19:24 -0700
committerZi Wang <mrziwang@google.com>2023-03-17 12:19:24 -0700
commit7f6041ae044ff3f0d97afa3c013b30ace364a843 (patch)
tree25ef32935d444de4f851706f21543558f2017c6c /rules/apex
parent0ba818022efa37fb92d041844baae41dd0b2be63 (diff)
downloadbazel-7f6041ae044ff3f0d97afa3c013b30ace364a843.tar.gz
match soong api_fingerprint behavior in bazel
In soong, min_sdk_version is current or None is a prerequite to use api_fingerprint for min_sdk_version. In bazel, the equivalent condition is min_sdk_version is current(None is default to current). This change makes bazel behavior match soong's. Bug: 274120528 Test: _test_min_target_sdk_version_api_fingerprint_min_sdk_version_specified and _test_min_target_sdk_version_api_fingerprint_min_sdk_version_not_specified Change-Id: I85b414d62542cd4b026c2f9e97fc1e6286f86733
Diffstat (limited to 'rules/apex')
-rw-r--r--rules/apex/apex.bzl2
-rw-r--r--rules/apex/apex_test.bzl45
2 files changed, 37 insertions, 10 deletions
diff --git a/rules/apex/apex.bzl b/rules/apex/apex.bzl
index 1fab149d..f682ffcd 100644
--- a/rules/apex/apex.bzl
+++ b/rules/apex/apex.bzl
@@ -459,7 +459,7 @@ def _run_apexer(ctx, apex_toolchain):
override_min_sdk_version = ctx.attr._apex_global_min_sdk_version_override[BuildSettingInfo].value
min_sdk_version = maybe_override_min_sdk_version(min_sdk_version, override_min_sdk_version)
- if use_api_fingerprint:
+ if min_sdk_version == "10000" and use_api_fingerprint:
min_sdk_version = ctx.attr._platform_sdk_codename[BuildSettingInfo].value + sdk_version_suffix
args.add(api_fingerprint_file.path)
args.add_all(["--min_sdk_version", min_sdk_version])
diff --git a/rules/apex/apex_test.bzl b/rules/apex/apex_test.bzl
index 819fa560..a77bc499 100644
--- a/rules/apex/apex_test.bzl
+++ b/rules/apex/apex_test.bzl
@@ -2467,23 +2467,32 @@ def _min_target_sdk_version_api_fingerprint_test(ctx):
"api_fingerprint.txt is not in the input files",
)
- expected_sdk_version = "123" + ".$$(cat {})".format(api_fingerprint_path)
+ expected_target_sdk_version = "123" + ".$$(cat {})".format(api_fingerprint_path)
asserts.equals(
env,
- expected = expected_sdk_version,
- actual = argv[argv.index("--min_sdk_version") + 1],
+ expected = expected_target_sdk_version,
+ actual = argv[argv.index("--target_sdk_version") + 1],
)
+ if ctx.attr.min_sdk_version in ["current", "10000"]:
+ expected_min_sdk_version = "123" + ".$$(cat {})".format(api_fingerprint_path)
+ else:
+ expected_min_sdk_version = ctx.attr.min_sdk_version
asserts.equals(
env,
- expected = expected_sdk_version,
- actual = argv[argv.index("--target_sdk_version") + 1],
+ expected = expected_min_sdk_version,
+ actual = argv[argv.index("--min_sdk_version") + 1],
)
return analysistest.end(env)
min_target_sdk_version_api_fingerprint_test = analysistest.make(
_min_target_sdk_version_api_fingerprint_test,
+ attrs = {
+ "min_sdk_version": attr.string(
+ default = "current",
+ ),
+ },
config_settings = {
"@//build/bazel/rules/apex:unbundled_build": True,
"@//build/bazel/rules/apex:always_use_prebuilt_sdks": False,
@@ -2492,13 +2501,30 @@ min_target_sdk_version_api_fingerprint_test = analysistest.make(
},
)
-def _test_min_target_sdk_version_api_fingerprint():
- name = "min_target_sdk_version_api_fingerprint"
+def _test_min_target_sdk_version_api_fingerprint_min_sdk_version_specified():
+ name = "min_target_sdk_version_api_fingerprint_min_sdk_version_specified"
+ test_name = name + "_test"
+ min_sdk_version = "30"
+
+ test_apex(
+ name = name,
+ min_sdk_version = min_sdk_version,
+ )
+
+ min_target_sdk_version_api_fingerprint_test(
+ name = test_name,
+ target_under_test = name,
+ min_sdk_version = min_sdk_version,
+ )
+
+ return test_name
+
+def _test_min_target_sdk_version_api_fingerprint_min_sdk_version_not_specified():
+ name = "min_target_sdk_version_api_fingerprint_min_sdk_version_not_specified"
test_name = name + "_test"
test_apex(
name = name,
- min_sdk_version = "current",
)
min_target_sdk_version_api_fingerprint_test(
@@ -2559,6 +2585,7 @@ def apex_test_suite(name):
_test_apex_in_bundled_build(),
_test_apex_compression(),
_test_apex_no_compression(),
- _test_min_target_sdk_version_api_fingerprint(),
+ _test_min_target_sdk_version_api_fingerprint_min_sdk_version_specified(),
+ _test_min_target_sdk_version_api_fingerprint_min_sdk_version_not_specified(),
] + _test_apex_transition(),
)