Page MenuHomeFreeBSD

D57781.diff
No OneTemporary

D57781.diff

diff --git a/tests/sys/fs/fusefs/mockfs.hh b/tests/sys/fs/fusefs/mockfs.hh
--- a/tests/sys/fs/fusefs/mockfs.hh
+++ b/tests/sys/fs/fusefs/mockfs.hh
@@ -388,6 +388,9 @@
/* Process FUSE requests endlessly */
void loop();
+ /* Begin processing requests from the kernel */
+ void start_service();
+
/*
* Send an asynchronous notification to invalidate a directory entry.
* Similar to libfuse's fuse_lowlevel_notify_inval_entry
diff --git a/tests/sys/fs/fusefs/mockfs.cc b/tests/sys/fs/fusefs/mockfs.cc
--- a/tests/sys/fs/fusefs/mockfs.cc
+++ b/tests/sys/fs/fusefs/mockfs.cc
@@ -550,9 +550,8 @@
if (0 != sigaction(SIGUSR1, &sa, NULL))
throw(std::system_error(errno, std::system_category(),
"Couldn't handle SIGUSR1"));
- if (pthread_create(&m_daemon_id, NULL, service, (void*)this))
- throw(std::system_error(errno, std::system_category(),
- "Couldn't Couldn't start fuse thread"));
+ if (!no_auto_init)
+ start_service();
}
MockFS::~MockFS() {
@@ -1018,6 +1017,12 @@
ASSERT_TRUE(res == static_cast<ssize_t>(in.header.len) || m_quit);
}
+void MockFS::start_service() {
+ if (pthread_create(&m_daemon_id, NULL, service, (void*)this))
+ throw(std::system_error(errno, std::system_category(),
+ "Couldn't Couldn't start fuse thread"));
+}
+
void MockFS::write_response(const mockfs_buf_out &out) {
fd_set writefds;
pollfd fds[1];
diff --git a/tests/sys/fs/fusefs/pre-init.cc b/tests/sys/fs/fusefs/pre-init.cc
--- a/tests/sys/fs/fusefs/pre-init.cc
+++ b/tests/sys/fs/fusefs/pre-init.cc
@@ -102,6 +102,8 @@
})));
expect_destroy(0);
+ m_mock->start_service();
+
ASSERT_EQ(0, pthread_create(&th1, NULL, unmount1, NULL));
nap(); /* Wait for th1 to block in unmount() */
sem_post(&sem0);
@@ -147,6 +149,8 @@
sem_wait(&sem0);
})));
+ m_mock->start_service();
+
if ((child = ::fork()) == 0) {
/*
* In child. This will block waiting for FUSE_INIT to complete
@@ -219,6 +223,8 @@
out.body.attr.attr_valid = UINT64_MAX;
})));
+ m_mock->start_service();
+
EXPECT_EQ(0, stat("mountpoint", &sb));
EXPECT_EQ(nlink, sb.st_nlink);
}

File Metadata

Mime Type
text/plain
Expires
Wed, Jul 15, 3:25 PM (3 h, 51 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35104700
Default Alt Text
D57781.diff (2 KB)

Event Timeline