Merge "libsnapshot: Fix vts_libsnapshot_test for GRF with Vendor on S"
This commit is contained in:
commit
7e6cdc9f5e
2 changed files with 33 additions and 7 deletions
|
@ -3273,8 +3273,21 @@ Return SnapshotManager::CreateUpdateSnapshots(const DeltaArchiveManifest& manife
|
|||
snapuserd_client_ = nullptr;
|
||||
}
|
||||
} else {
|
||||
status.set_userspace_snapshots(!IsDmSnapshotTestingEnabled());
|
||||
if (IsDmSnapshotTestingEnabled()) {
|
||||
bool userSnapshotsEnabled = true;
|
||||
const std::string UNKNOWN = "unknown";
|
||||
const std::string vendor_release = android::base::GetProperty(
|
||||
"ro.vendor.build.version.release_or_codename", UNKNOWN);
|
||||
|
||||
// No user-space snapshots if vendor partition is on Android 12
|
||||
if (vendor_release.find("12") != std::string::npos) {
|
||||
LOG(INFO) << "Userspace snapshots disabled as vendor partition is on Android: "
|
||||
<< vendor_release;
|
||||
userSnapshotsEnabled = false;
|
||||
}
|
||||
|
||||
userSnapshotsEnabled = (userSnapshotsEnabled && !IsDmSnapshotTestingEnabled());
|
||||
status.set_userspace_snapshots(userSnapshotsEnabled);
|
||||
if (!userSnapshotsEnabled) {
|
||||
is_snapshot_userspace_ = false;
|
||||
LOG(INFO) << "User-space snapshots disabled for testing";
|
||||
} else {
|
||||
|
|
|
@ -91,7 +91,7 @@ std::string fake_super;
|
|||
|
||||
void MountMetadata();
|
||||
bool ShouldUseCompression();
|
||||
bool ShouldUseUserspaceSnapshots();
|
||||
bool IsDaemonRequired();
|
||||
|
||||
class SnapshotTest : public ::testing::Test {
|
||||
public:
|
||||
|
@ -1208,7 +1208,7 @@ TEST_F(SnapshotUpdateTest, FullUpdateFlow) {
|
|||
|
||||
// Initiate the merge and wait for it to be completed.
|
||||
ASSERT_TRUE(init->InitiateMerge());
|
||||
ASSERT_EQ(init->IsSnapuserdRequired(), ShouldUseUserspaceSnapshots());
|
||||
ASSERT_EQ(init->IsSnapuserdRequired(), IsDaemonRequired());
|
||||
{
|
||||
// We should have started in SECOND_PHASE since nothing shrinks.
|
||||
ASSERT_TRUE(AcquireLock());
|
||||
|
@ -1342,7 +1342,7 @@ TEST_F(SnapshotUpdateTest, SpaceSwapUpdate) {
|
|||
|
||||
// Initiate the merge and wait for it to be completed.
|
||||
ASSERT_TRUE(init->InitiateMerge());
|
||||
ASSERT_EQ(init->IsSnapuserdRequired(), ShouldUseUserspaceSnapshots());
|
||||
ASSERT_EQ(init->IsSnapuserdRequired(), IsDaemonRequired());
|
||||
{
|
||||
// Check that the merge phase is FIRST_PHASE until at least one call
|
||||
// to ProcessUpdateState() occurs.
|
||||
|
@ -1450,7 +1450,7 @@ TEST_F(SnapshotUpdateTest, ConsistencyCheckResume) {
|
|||
|
||||
// Initiate the merge and wait for it to be completed.
|
||||
ASSERT_TRUE(init->InitiateMerge());
|
||||
ASSERT_EQ(init->IsSnapuserdRequired(), ShouldUseUserspaceSnapshots());
|
||||
ASSERT_EQ(init->IsSnapuserdRequired(), IsDaemonRequired());
|
||||
{
|
||||
// Check that the merge phase is FIRST_PHASE until at least one call
|
||||
// to ProcessUpdateState() occurs.
|
||||
|
@ -2750,13 +2750,26 @@ void SnapshotTestEnvironment::TearDown() {
|
|||
}
|
||||
}
|
||||
|
||||
bool ShouldUseUserspaceSnapshots() {
|
||||
bool IsDaemonRequired() {
|
||||
if (FLAGS_force_config == "dmsnap") {
|
||||
return false;
|
||||
}
|
||||
|
||||
const std::string UNKNOWN = "unknown";
|
||||
const std::string vendor_release =
|
||||
android::base::GetProperty("ro.vendor.build.version.release_or_codename", UNKNOWN);
|
||||
|
||||
// No userspace snapshots if vendor partition is on Android 12
|
||||
// However, for GRF devices, snapuserd daemon will be on
|
||||
// vendor ramdisk in Android 12.
|
||||
if (vendor_release.find("12") != std::string::npos) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!FLAGS_force_config.empty()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return IsUserspaceSnapshotsEnabled();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue