summaryrefslogtreecommitdiff
path: root/runtime/hidden_api_test.cc
diff options
context:
space:
mode:
author android-build-team Robot <android-build-team-robot@google.com> 2018-04-08 07:21:37 +0000
committer android-build-team Robot <android-build-team-robot@google.com> 2018-04-08 07:21:37 +0000
commit4b86ef5422e36e5b852a8208f59ac93c169f7ecb (patch)
tree6debc967f7886e7e25905bc9e04d153ed12584a4 /runtime/hidden_api_test.cc
parent406cfc2782cd6ba93a4162c066a0d13cbf4967a2 (diff)
parentc3dbfcc312774563c28f70c5c83c8bca5c894a9a (diff)
Snap for 4706961 from c3dbfcc312774563c28f70c5c83c8bca5c894a9a to pi-release
Change-Id: I7ad2b8bfacd5035ad9d01ae3601c431c21102feb
Diffstat (limited to 'runtime/hidden_api_test.cc')
-rw-r--r--runtime/hidden_api_test.cc34
1 files changed, 34 insertions, 0 deletions
diff --git a/runtime/hidden_api_test.cc b/runtime/hidden_api_test.cc
index 5a31dd4972..65d6363bfd 100644
--- a/runtime/hidden_api_test.cc
+++ b/runtime/hidden_api_test.cc
@@ -22,6 +22,7 @@
namespace art {
using hiddenapi::detail::MemberSignature;
+using hiddenapi::GetActionFromAccessFlags;
class HiddenApiTest : public CommonRuntimeTest {
protected:
@@ -84,6 +85,39 @@ class HiddenApiTest : public CommonRuntimeTest {
ArtMethod* class3_method1_i_;
};
+TEST_F(HiddenApiTest, CheckGetActionFromRuntimeFlags) {
+ uint32_t whitelist = HiddenApiAccessFlags::EncodeForRuntime(0, HiddenApiAccessFlags::kWhitelist);
+ uint32_t lightgreylist =
+ HiddenApiAccessFlags::EncodeForRuntime(0, HiddenApiAccessFlags::kLightGreylist);
+ uint32_t darkgreylist =
+ HiddenApiAccessFlags::EncodeForRuntime(0, HiddenApiAccessFlags::kDarkGreylist);
+ uint32_t blacklist = HiddenApiAccessFlags::EncodeForRuntime(0, HiddenApiAccessFlags::kBlacklist);
+
+ runtime_->SetHiddenApiEnforcementPolicy(hiddenapi::EnforcementPolicy::kNoChecks);
+ ASSERT_EQ(GetActionFromAccessFlags(whitelist), hiddenapi::kAllow);
+ ASSERT_EQ(GetActionFromAccessFlags(lightgreylist), hiddenapi::kAllow);
+ ASSERT_EQ(GetActionFromAccessFlags(darkgreylist), hiddenapi::kAllow);
+ ASSERT_EQ(GetActionFromAccessFlags(blacklist), hiddenapi::kAllow);
+
+ runtime_->SetHiddenApiEnforcementPolicy(hiddenapi::EnforcementPolicy::kJustWarn);
+ ASSERT_EQ(GetActionFromAccessFlags(whitelist), hiddenapi::kAllow);
+ ASSERT_EQ(GetActionFromAccessFlags(lightgreylist), hiddenapi::kAllowButWarn);
+ ASSERT_EQ(GetActionFromAccessFlags(darkgreylist), hiddenapi::kAllowButWarn);
+ ASSERT_EQ(GetActionFromAccessFlags(blacklist), hiddenapi::kAllowButWarn);
+
+ runtime_->SetHiddenApiEnforcementPolicy(hiddenapi::EnforcementPolicy::kDarkGreyAndBlackList);
+ ASSERT_EQ(GetActionFromAccessFlags(whitelist), hiddenapi::kAllow);
+ ASSERT_EQ(GetActionFromAccessFlags(lightgreylist), hiddenapi::kAllowButWarn);
+ ASSERT_EQ(GetActionFromAccessFlags(darkgreylist), hiddenapi::kDeny);
+ ASSERT_EQ(GetActionFromAccessFlags(blacklist), hiddenapi::kDeny);
+
+ runtime_->SetHiddenApiEnforcementPolicy(hiddenapi::EnforcementPolicy::kBlacklistOnly);
+ ASSERT_EQ(GetActionFromAccessFlags(whitelist), hiddenapi::kAllow);
+ ASSERT_EQ(GetActionFromAccessFlags(lightgreylist), hiddenapi::kAllowButWarn);
+ ASSERT_EQ(GetActionFromAccessFlags(darkgreylist), hiddenapi::kAllowButWarnAndToast);
+ ASSERT_EQ(GetActionFromAccessFlags(blacklist), hiddenapi::kDeny);
+}
+
TEST_F(HiddenApiTest, CheckMembersRead) {
ASSERT_NE(nullptr, class1_field1_);
ASSERT_NE(nullptr, class1_field12_);