Merge "Merge "mntent_test: don't assume /proc isn't the first mount." into android10-tests-dev am: 0462cfb766" into android11-tests-dev am: 0a5cc21c42
Original change: https://android-review.googlesource.com/c/platform/bionic/+/2098734 Change-Id: Ic585470d3f383c9dcbc6e989b46ec8d6ce17eefd Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
commit
d285f43605
1 changed files with 23 additions and 7 deletions
|
@ -19,24 +19,40 @@
|
|||
#include <mntent.h>
|
||||
|
||||
TEST(mntent, mntent_smoke) {
|
||||
// Read all the entries with getmntent().
|
||||
FILE* fp = setmntent("/proc/mounts", "r");
|
||||
ASSERT_TRUE(fp != nullptr);
|
||||
|
||||
ASSERT_TRUE(getmntent(fp) != nullptr);
|
||||
std::vector<std::string> fsnames;
|
||||
std::vector<std::string> dirs;
|
||||
mntent* me;
|
||||
while ((me = getmntent(fp)) != nullptr) {
|
||||
fsnames.push_back(me->mnt_fsname);
|
||||
dirs.push_back(me->mnt_dir);
|
||||
}
|
||||
|
||||
bool saw_proc = false;
|
||||
ASSERT_EQ(1, endmntent(fp));
|
||||
|
||||
// Then again with getmntent_r(), checking they match.
|
||||
fp = setmntent("/proc/mounts", "r");
|
||||
ASSERT_TRUE(fp != nullptr);
|
||||
|
||||
struct mntent entry;
|
||||
char buf[BUFSIZ];
|
||||
size_t i = 0;
|
||||
while (getmntent_r(fp, &entry, buf, sizeof(buf)) != nullptr) {
|
||||
if (strcmp(entry.mnt_fsname, "proc") == 0 && strcmp(entry.mnt_dir, "/proc") == 0) {
|
||||
saw_proc = true;
|
||||
}
|
||||
ASSERT_EQ(fsnames[i], entry.mnt_fsname);
|
||||
ASSERT_EQ(dirs[i], entry.mnt_dir);
|
||||
i++;
|
||||
}
|
||||
|
||||
ASSERT_TRUE(saw_proc);
|
||||
|
||||
ASSERT_EQ(1, endmntent(fp));
|
||||
|
||||
// And just for good measure: we did see a /proc entry, right?
|
||||
auto it = std::find(fsnames.begin(), fsnames.end(), "proc");
|
||||
ASSERT_TRUE(it != fsnames.end());
|
||||
size_t proc_index = it - fsnames.begin();
|
||||
ASSERT_EQ("/proc", dirs[proc_index]);
|
||||
}
|
||||
|
||||
TEST(mntent, hasmntopt) {
|
||||
|
|
Loading…
Reference in a new issue