summaryrefslogtreecommitdiff
path: root/services/incremental/test/IncrementalServiceTest.cpp
diff options
context:
space:
mode:
authorAlex Buynytskyy <alexbuy@google.com>2021-01-12 11:10:03 -0800
committerAlex Buynytskyy <alexbuy@google.com>2021-01-12 12:35:53 -0800
commit42d4ba418e97c6e34fba7b1053d69e92ec32b846 (patch)
tree51329c4aa638a50db0adaa57690c49310041b931 /services/incremental/test/IncrementalServiceTest.cpp
parentdaea39f8a21c1900f45e652df2fa10ffe3e3d5bf (diff)
Require INTERACT_ACROSS_USERS to enable readlogs.
As requested by PWG. Bug: 177330562 Fixes: 177330562 Test: atest PackageManagerShellCommandTest PackageManagerShellCommandIncrementalTest IncrementalServiceTest PackageManagerServiceTest Change-Id: I1b03bc1c5b4c3cffaa0f97d864cc088782290bc2
Diffstat (limited to 'services/incremental/test/IncrementalServiceTest.cpp')
-rw-r--r--services/incremental/test/IncrementalServiceTest.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/services/incremental/test/IncrementalServiceTest.cpp b/services/incremental/test/IncrementalServiceTest.cpp
index 02eaa2fe07b1..47b9051970e4 100644
--- a/services/incremental/test/IncrementalServiceTest.cpp
+++ b/services/incremental/test/IncrementalServiceTest.cpp
@@ -397,6 +397,15 @@ public:
void checkPermissionSuccess() {
ON_CALL(*this, checkPermission(_, _, _)).WillByDefault(Return(android::incremental::Ok()));
}
+ void checkPermissionNoCrossUsers() {
+ ON_CALL(*this,
+ checkPermission("android.permission.LOADER_USAGE_STATS",
+ "android:loader_usage_stats", _))
+ .WillByDefault(Return(android::incremental::Ok()));
+ ON_CALL(*this, checkPermission("android.permission.INTERACT_ACROSS_USERS", nullptr, _))
+ .WillByDefault(
+ Return(android::incremental::Exception(binder::Status::EX_SECURITY, {})));
+ }
void checkPermissionFails() {
ON_CALL(*this, checkPermission(_, _, _))
.WillByDefault(
@@ -1047,6 +1056,23 @@ TEST_F(IncrementalServiceTest, testSetIncFsMountOptionsCheckPermissionFails) {
ASSERT_LT(mDataLoader->setStorageParams(true), 0);
}
+TEST_F(IncrementalServiceTest, testSetIncFsMountOptionsCheckPermissionNoCrossUsers) {
+ mAppOpsManager->checkPermissionNoCrossUsers();
+
+ EXPECT_CALL(*mDataLoaderManager, unbindFromDataLoader(_));
+ EXPECT_CALL(*mVold, unmountIncFs(_)).Times(2);
+ // checkPermission fails, no calls to set opitions, start or stop WatchingMode.
+ EXPECT_CALL(*mVold, setIncFsMountOptions(_, true)).Times(0);
+ EXPECT_CALL(*mAppOpsManager, startWatchingMode(_, _, _)).Times(0);
+ EXPECT_CALL(*mAppOpsManager, stopWatchingMode(_)).Times(0);
+ TemporaryDir tempDir;
+ int storageId = mIncrementalService->createStorage(tempDir.path, std::move(mDataLoaderParcel),
+ IncrementalService::CreateOptions::CreateNew,
+ {}, {}, {}, {});
+ ASSERT_GE(storageId, 0);
+ ASSERT_LT(mDataLoader->setStorageParams(true), 0);
+}
+
TEST_F(IncrementalServiceTest, testSetIncFsMountOptionsFails) {
mVold->setIncFsMountOptionsFails();
mAppOpsManager->checkPermissionSuccess();