Loading TEST_MAPPING +3 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,9 @@ { "name": "debuggerd_test" }, { "name": "fs_mgr_unit_test" }, { "name": "init_tests" }, Loading fs_mgr/tests/fs_mgr_test.cpp +18 −21 Original line number Diff line number Diff line Loading @@ -138,39 +138,33 @@ TEST(fs_mgr, fs_mgr_get_boot_config_from_kernel_cmdline) { } TEST(fs_mgr, fs_mgr_read_fstab_file_proc_mounts) { auto fstab = fs_mgr_read_fstab("/proc/mounts"); ASSERT_NE(fstab, nullptr); Fstab fstab; ASSERT_TRUE(ReadFstabFromFile("/proc/mounts", &fstab)); std::unique_ptr<std::FILE, int (*)(std::FILE*)> mounts(setmntent("/proc/mounts", "re"), endmntent); ASSERT_NE(mounts, nullptr); mntent* mentry; int i = 0; size_t i = 0; while ((mentry = getmntent(mounts.get())) != nullptr) { ASSERT_LT(i, fstab->num_entries); auto fsrec = &fstab->recs[i]; std::string mnt_fsname(mentry->mnt_fsname ?: "nullptr"); std::string blk_device(fsrec->blk_device ?: "nullptr"); EXPECT_EQ(mnt_fsname, blk_device); std::string mnt_dir(mentry->mnt_dir ?: "nullptr"); std::string mount_point(fsrec->mount_point ?: "nullptr"); EXPECT_EQ(mnt_dir, mount_point); ASSERT_LT(i, fstab.size()); auto& entry = fstab[i]; std::string mnt_type(mentry->mnt_type ?: "nullptr"); std::string fs_type(fsrec->fs_type ?: "nullptr"); EXPECT_EQ(mnt_type, fs_type); EXPECT_EQ(mentry->mnt_fsname, entry.blk_device); EXPECT_EQ(mentry->mnt_dir, entry.mount_point); EXPECT_EQ(mentry->mnt_type, entry.fs_type); std::set<std::string> mnt_opts; for (auto& s : android::base::Split(mentry->mnt_opts ?: "nullptr", ",")) { for (auto& s : android::base::Split(mentry->mnt_opts, ",")) { mnt_opts.emplace(s); } std::set<std::string> fs_options; for (auto& s : android::base::Split(fsrec->fs_options ?: "nullptr", ",")) { if (!entry.fs_options.empty()) { for (auto& s : android::base::Split(entry.fs_options, ",")) { fs_options.emplace(s); } } // matches private content in fs_mgr_fstab.c static struct flag_list { const char* name; Loading @@ -194,14 +188,17 @@ TEST(fs_mgr, fs_mgr_read_fstab_file_proc_mounts) { {0, 0}, }; for (auto f = 0; mount_flags[f].name; ++f) { if (mount_flags[f].flag & fsrec->flags) { if (mount_flags[f].flag & entry.flags) { fs_options.emplace(mount_flags[f].name); } } if (!(fsrec->flags & MS_RDONLY)) fs_options.emplace("rw"); if (!(entry.flags & MS_RDONLY)) { fs_options.emplace("rw"); } EXPECT_EQ(mnt_opts, fs_options); ++i; } EXPECT_EQ(i, fstab.size()); } TEST(fs_mgr, ReadFstabFromFile_FsOptions) { Loading Loading
TEST_MAPPING +3 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,9 @@ { "name": "debuggerd_test" }, { "name": "fs_mgr_unit_test" }, { "name": "init_tests" }, Loading
fs_mgr/tests/fs_mgr_test.cpp +18 −21 Original line number Diff line number Diff line Loading @@ -138,39 +138,33 @@ TEST(fs_mgr, fs_mgr_get_boot_config_from_kernel_cmdline) { } TEST(fs_mgr, fs_mgr_read_fstab_file_proc_mounts) { auto fstab = fs_mgr_read_fstab("/proc/mounts"); ASSERT_NE(fstab, nullptr); Fstab fstab; ASSERT_TRUE(ReadFstabFromFile("/proc/mounts", &fstab)); std::unique_ptr<std::FILE, int (*)(std::FILE*)> mounts(setmntent("/proc/mounts", "re"), endmntent); ASSERT_NE(mounts, nullptr); mntent* mentry; int i = 0; size_t i = 0; while ((mentry = getmntent(mounts.get())) != nullptr) { ASSERT_LT(i, fstab->num_entries); auto fsrec = &fstab->recs[i]; std::string mnt_fsname(mentry->mnt_fsname ?: "nullptr"); std::string blk_device(fsrec->blk_device ?: "nullptr"); EXPECT_EQ(mnt_fsname, blk_device); std::string mnt_dir(mentry->mnt_dir ?: "nullptr"); std::string mount_point(fsrec->mount_point ?: "nullptr"); EXPECT_EQ(mnt_dir, mount_point); ASSERT_LT(i, fstab.size()); auto& entry = fstab[i]; std::string mnt_type(mentry->mnt_type ?: "nullptr"); std::string fs_type(fsrec->fs_type ?: "nullptr"); EXPECT_EQ(mnt_type, fs_type); EXPECT_EQ(mentry->mnt_fsname, entry.blk_device); EXPECT_EQ(mentry->mnt_dir, entry.mount_point); EXPECT_EQ(mentry->mnt_type, entry.fs_type); std::set<std::string> mnt_opts; for (auto& s : android::base::Split(mentry->mnt_opts ?: "nullptr", ",")) { for (auto& s : android::base::Split(mentry->mnt_opts, ",")) { mnt_opts.emplace(s); } std::set<std::string> fs_options; for (auto& s : android::base::Split(fsrec->fs_options ?: "nullptr", ",")) { if (!entry.fs_options.empty()) { for (auto& s : android::base::Split(entry.fs_options, ",")) { fs_options.emplace(s); } } // matches private content in fs_mgr_fstab.c static struct flag_list { const char* name; Loading @@ -194,14 +188,17 @@ TEST(fs_mgr, fs_mgr_read_fstab_file_proc_mounts) { {0, 0}, }; for (auto f = 0; mount_flags[f].name; ++f) { if (mount_flags[f].flag & fsrec->flags) { if (mount_flags[f].flag & entry.flags) { fs_options.emplace(mount_flags[f].name); } } if (!(fsrec->flags & MS_RDONLY)) fs_options.emplace("rw"); if (!(entry.flags & MS_RDONLY)) { fs_options.emplace("rw"); } EXPECT_EQ(mnt_opts, fs_options); ++i; } EXPECT_EQ(i, fstab.size()); } TEST(fs_mgr, ReadFstabFromFile_FsOptions) { Loading