Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fe703bb2 authored by Akilesh Kailash's avatar Akilesh Kailash Committed by Automerger Merge Worker
Browse files

Merge changes from topic "snapuserd-async-merge" am: 3991ce6c am: c189ae4f

Original change: https://android-review.googlesource.com/c/platform/system/core/+/1940031

Change-Id: I198bc9b4b68f3c0192e1d9a61915461378d81c9e
parents 97df4197 c189ae4f
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -54,6 +54,8 @@
#include <libsnapshot/mock_snapshot.h>

DEFINE_string(force_config, "", "Force testing mode (dmsnap, vab, vabc) ignoring device config.");
DEFINE_string(force_iouring_disable, "",
              "Force testing mode (iouring_disabled) - disable io_uring");

namespace android {
namespace snapshot {
@@ -2769,10 +2771,22 @@ int main(int argc, char** argv) {
        }
    }

    if (FLAGS_force_iouring_disable == "iouring_disabled") {
        if (!android::base::SetProperty("snapuserd.test.io_uring.force_disable", "1")) {
            return testing::AssertionFailure()
                   << "Failed to disable property: snapuserd.test.io_uring.disabled";
        }
    }

    int ret = RUN_ALL_TESTS();

    if (FLAGS_force_config == "dmsnap") {
        android::base::SetProperty("snapuserd.test.dm.snapshots", "0");
    }

    if (FLAGS_force_iouring_disable == "iouring_disabled") {
        android::base::SetProperty("snapuserd.test.io_uring.force_disable", "0");
    }

    return ret;
}
+1 −0
Original line number Diff line number Diff line
@@ -185,6 +185,7 @@ cc_test {
        "libdm",
        "libext4_utils",
        "liburing",
        "libgflags",
    ],
    include_dirs: ["bionic/libc/kernel"],
    header_libs: [
+5 −0
Original line number Diff line number Diff line
@@ -656,6 +656,11 @@ bool SnapshotHandler::IsIouringSupported() {
    struct utsname uts;
    unsigned int major, minor;

    if (android::base::GetBoolProperty("snapuserd.test.io_uring.force_disable", false)) {
        SNAP_LOG(INFO) << "io_uring disabled for testing";
        return false;
    }

    if ((uname(&uts) != 0) || (sscanf(uts.release, "%u.%u", &major, &minor) != 2)) {
        SNAP_LOG(ERROR) << "Could not parse the kernel version from uname. "
                        << " io_uring not supported";
+1 −1
Original line number Diff line number Diff line
@@ -711,7 +711,7 @@ bool ReadAhead::RunThread() {
    CloseFds();
    reader_->CloseCowFd();

    SNAP_LOG(INFO) << " ReadAheadAsync thread terminating....";
    SNAP_LOG(INFO) << " ReadAhead thread terminating....";
    return true;
}

+25 −1
Original line number Diff line number Diff line
@@ -12,6 +12,9 @@
// See the License for the specific language governing permissions and
// limitations under the License.

#include <android-base/strings.h>
#include <gflags/gflags.h>

#include <fcntl.h>
#include <linux/fs.h>
#include <linux/memfd.h>
@@ -27,6 +30,7 @@
#include <string_view>

#include <android-base/file.h>
#include <android-base/properties.h>
#include <android-base/unique_fd.h>
#include <fs_mgr/file_wait.h>
#include <gtest/gtest.h>
@@ -38,6 +42,8 @@

#include "snapuserd_core.h"

DEFINE_string(force_config, "", "Force testing mode with iouring disabled");

namespace android {
namespace snapshot {

@@ -857,5 +863,23 @@ TEST(Snapuserd_Test, Snapshot_Merge_Crash_Random_Inverted) {

int main(int argc, char** argv) {
    ::testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();

    gflags::ParseCommandLineFlags(&argc, &argv, false);

    android::base::SetProperty("ctl.stop", "snapuserd");

    if (FLAGS_force_config == "iouring_disabled") {
        if (!android::base::SetProperty("snapuserd.test.io_uring.force_disable", "1")) {
            return testing::AssertionFailure()
                   << "Failed to disable property: snapuserd.test.io_uring.disabled";
        }
    }

    int ret = RUN_ALL_TESTS();

    if (FLAGS_force_config == "iouring_disabled") {
        android::base::SetProperty("snapuserd.test.io_uring.force_disable", "0");
    }

    return ret;
}