git: 8d99a6b91b78 - main - fusefs: move common code from forget.cc to utils.cc
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 01 Jan 2022 03:39:04 UTC
The branch main has been updated by asomers:
URL: https://cgit.FreeBSD.org/src/commit/?id=8d99a6b91b788b7ddf88f975f288f7c6479f4be3
commit 8d99a6b91b788b7ddf88f975f288f7c6479f4be3
Author: Alan Somers <asomers@FreeBSD.org>
AuthorDate: 2021-12-02 02:50:26 +0000
Commit: Alan Somers <asomers@FreeBSD.org>
CommitDate: 2022-01-01 03:38:20 +0000
fusefs: move common code from forget.cc to utils.cc
MFC after: 2 weeks
---
tests/sys/fs/fusefs/forget.cc | 10 ++--------
tests/sys/fs/fusefs/utils.cc | 9 +++++++++
tests/sys/fs/fusefs/utils.hh | 4 ++++
3 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/tests/sys/fs/fusefs/forget.cc b/tests/sys/fs/fusefs/forget.cc
index 2041d20efae4..84fc271df57c 100644
--- a/tests/sys/fs/fusefs/forget.cc
+++ b/tests/sys/fs/fusefs/forget.cc
@@ -44,8 +44,6 @@ extern "C" {
using namespace testing;
-const char reclaim_mib[] = "debug.try_reclaim_vnode";
-
class Forget: public FuseTest {
public:
void SetUp() {
@@ -67,7 +65,6 @@ TEST_F(Forget, ok)
uint64_t ino = 42;
mode_t mode = S_IFREG | 0755;
sem_t sem;
- int err;
ASSERT_EQ(0, sem_init(&sem, 0, 0)) << strerror(errno);
@@ -90,8 +87,7 @@ TEST_F(Forget, ok)
ASSERT_EQ(0, access(FULLPATH, F_OK)) << strerror(errno);
ASSERT_EQ(0, access(FULLPATH, F_OK)) << strerror(errno);
- err = sysctlbyname(reclaim_mib, NULL, 0, FULLPATH, sizeof(FULLPATH));
- ASSERT_EQ(0, err) << strerror(errno);
+ reclaim_vnode(FULLPATH);
sem_wait(&sem);
sem_destroy(&sem);
@@ -109,7 +105,6 @@ TEST_F(Forget, invalidate_names)
const char FNAME[] = "some_file.txt";
uint64_t dir_ino = 42;
uint64_t file_ino = 43;
- int err;
EXPECT_LOOKUP(FUSE_ROOT_ID, DNAME)
.Times(2)
@@ -145,8 +140,7 @@ TEST_F(Forget, invalidate_names)
ASSERT_EQ(0, access(FULLFPATH, F_OK)) << strerror(errno);
/* Reclaim the directory, invalidating its children from namecache */
- err = sysctlbyname(reclaim_mib, NULL, 0, FULLDPATH, sizeof(FULLDPATH));
- ASSERT_EQ(0, err) << strerror(errno);
+ reclaim_vnode(FULLDPATH);
/* Access the file again, causing another lookup */
ASSERT_EQ(0, access(FULLFPATH, F_OK)) << strerror(errno);
diff --git a/tests/sys/fs/fusefs/utils.cc b/tests/sys/fs/fusefs/utils.cc
index f733fef7ebe0..fb2109e1e9c4 100644
--- a/tests/sys/fs/fusefs/utils.cc
+++ b/tests/sys/fs/fusefs/utils.cc
@@ -623,6 +623,15 @@ out:
return;
}
+void
+FuseTest::reclaim_vnode(const char *path)
+{
+ int err;
+
+ err = sysctlbyname(reclaim_mib, NULL, 0, path, strlen(path) + 1);
+ ASSERT_EQ(0, err) << strerror(errno);
+}
+
static void usage(char* progname) {
fprintf(stderr, "Usage: %s [-v]\n\t-v increase verbosity\n", progname);
exit(2);
diff --git a/tests/sys/fs/fusefs/utils.hh b/tests/sys/fs/fusefs/utils.hh
index 6f1f91b02c97..610d2126fa52 100644
--- a/tests/sys/fs/fusefs/utils.hh
+++ b/tests/sys/fs/fusefs/utils.hh
@@ -73,6 +73,7 @@ class FuseTest : public ::testing::Test {
unsigned m_time_gran;
MockFS *m_mock = NULL;
const static uint64_t FH = 0xdeadbeef1a7ebabe;
+ const char *reclaim_mib = "debug.try_reclaim_vnode";
public:
int m_maxbcachebuf;
@@ -256,4 +257,7 @@ class FuseTest : public ::testing::Test {
* See comments for FuseTest::leak
*/
static void leakdir(DIR* dirp __unused) {}
+
+ /* Manually reclaim a vnode. Requires root privileges. */
+ void reclaim_vnode(const char *fullpath);
};