diff options
author | Zi Wang <mrziwang@google.com> | 2023-03-17 12:19:24 -0700 |
---|---|---|
committer | Zi Wang <mrziwang@google.com> | 2023-03-17 12:19:24 -0700 |
commit | 7f6041ae044ff3f0d97afa3c013b30ace364a843 (patch) | |
tree | 25ef32935d444de4f851706f21543558f2017c6c /rules/apex | |
parent | 0ba818022efa37fb92d041844baae41dd0b2be63 (diff) | |
download | bazel-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.bzl | 2 | ||||
-rw-r--r-- | rules/apex/apex_test.bzl | 45 |
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(), ) |