svn commit: r345207 - projects/fuse2/tests/sys/fs/fuse
Alan Somers
asomers at FreeBSD.org
Fri Mar 15 22:47:27 UTC 2019
Author: asomers
Date: Fri Mar 15 22:47:20 2019
New Revision: 345207
URL: https://svnweb.freebsd.org/changeset/base/345207
Log:
fuse(4): add tests for the FOPEN_KEEP_CACHE option
PR: 236560
Sponsored by: The FreeBSD Foundation
Modified:
projects/fuse2/tests/sys/fs/fuse/access.cc
projects/fuse2/tests/sys/fs/fuse/create.cc
projects/fuse2/tests/sys/fs/fuse/destroy.cc
projects/fuse2/tests/sys/fs/fuse/flush.cc
projects/fuse2/tests/sys/fs/fuse/fsync.cc
projects/fuse2/tests/sys/fs/fuse/fsyncdir.cc
projects/fuse2/tests/sys/fs/fuse/getattr.cc
projects/fuse2/tests/sys/fs/fuse/interrupt.cc
projects/fuse2/tests/sys/fs/fuse/link.cc
projects/fuse2/tests/sys/fs/fuse/locks.cc
projects/fuse2/tests/sys/fs/fuse/mkdir.cc
projects/fuse2/tests/sys/fs/fuse/open.cc
projects/fuse2/tests/sys/fs/fuse/opendir.cc
projects/fuse2/tests/sys/fs/fuse/read.cc
projects/fuse2/tests/sys/fs/fuse/readdir.cc
projects/fuse2/tests/sys/fs/fuse/readlink.cc
projects/fuse2/tests/sys/fs/fuse/release.cc
projects/fuse2/tests/sys/fs/fuse/releasedir.cc
projects/fuse2/tests/sys/fs/fuse/rename.cc
projects/fuse2/tests/sys/fs/fuse/unlink.cc
projects/fuse2/tests/sys/fs/fuse/utils.cc
projects/fuse2/tests/sys/fs/fuse/utils.hh
projects/fuse2/tests/sys/fs/fuse/write.cc
projects/fuse2/tests/sys/fs/fuse/xattr.cc
Modified: projects/fuse2/tests/sys/fs/fuse/access.cc
==============================================================================
--- projects/fuse2/tests/sys/fs/fuse/access.cc Fri Mar 15 22:39:55 2019 (r345206)
+++ projects/fuse2/tests/sys/fs/fuse/access.cc Fri Mar 15 22:47:20 2019 (r345207)
@@ -55,7 +55,7 @@ void expect_access(uint64_t ino, mode_t access_mode, i
void expect_lookup(const char *relpath, uint64_t ino)
{
- FuseTest::expect_lookup(relpath, ino, S_IFREG | 0644, 1);
+ FuseTest::expect_lookup(relpath, ino, S_IFREG | 0644, 0, 1);
}
};
Modified: projects/fuse2/tests/sys/fs/fuse/create.cc
==============================================================================
--- projects/fuse2/tests/sys/fs/fuse/create.cc Fri Mar 15 22:39:55 2019 (r345206)
+++ projects/fuse2/tests/sys/fs/fuse/create.cc Fri Mar 15 22:47:20 2019 (r345207)
@@ -288,7 +288,7 @@ TEST_F(Create, DISABLED_entry_cache_negative_purge)
ASSERT_LE(0, fd) << strerror(errno);
/* Finally, a subsequent lookup should query the daemon */
- expect_lookup(RELPATH, ino, S_IFREG | mode, 1);
+ expect_lookup(RELPATH, ino, S_IFREG | mode, 0, 1);
ASSERT_EQ(0, access(FULLPATH, F_OK)) << strerror(errno);
/* Deliberately leak fd. close(2) will be tested in release.cc */
Modified: projects/fuse2/tests/sys/fs/fuse/destroy.cc
==============================================================================
--- projects/fuse2/tests/sys/fs/fuse/destroy.cc Fri Mar 15 22:39:55 2019 (r345206)
+++ projects/fuse2/tests/sys/fs/fuse/destroy.cc Fri Mar 15 22:47:20 2019 (r345207)
@@ -72,7 +72,7 @@ TEST_F(Destroy, ok)
const char RELPATH[] = "some_file.txt";
uint64_t ino = 42;
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 2);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 2);
expect_forget(1, 1);
expect_forget(ino, 2);
expect_destroy(0);
Modified: projects/fuse2/tests/sys/fs/fuse/flush.cc
==============================================================================
--- projects/fuse2/tests/sys/fs/fuse/flush.cc Fri Mar 15 22:39:55 2019 (r345206)
+++ projects/fuse2/tests/sys/fs/fuse/flush.cc Fri Mar 15 22:47:20 2019 (r345207)
@@ -57,7 +57,7 @@ void expect_flush(uint64_t ino, int times, pid_t lo, P
void expect_lookup(const char *relpath, uint64_t ino)
{
- FuseTest::expect_lookup(relpath, ino, S_IFREG | 0644, 1);
+ FuseTest::expect_lookup(relpath, ino, S_IFREG | 0644, 0, 1);
}
/*
Modified: projects/fuse2/tests/sys/fs/fuse/fsync.cc
==============================================================================
--- projects/fuse2/tests/sys/fs/fuse/fsync.cc Fri Mar 15 22:39:55 2019 (r345206)
+++ projects/fuse2/tests/sys/fs/fuse/fsync.cc Fri Mar 15 22:47:20 2019 (r345207)
@@ -65,7 +65,7 @@ void expect_fsync(uint64_t ino, uint32_t flags, int er
void expect_lookup(const char *relpath, uint64_t ino)
{
- FuseTest::expect_lookup(relpath, ino, S_IFREG | 0644, 1);
+ FuseTest::expect_lookup(relpath, ino, S_IFREG | 0644, 0, 1);
}
void expect_write(uint64_t ino, uint64_t size, const void *contents)
Modified: projects/fuse2/tests/sys/fs/fuse/fsyncdir.cc
==============================================================================
--- projects/fuse2/tests/sys/fs/fuse/fsyncdir.cc Fri Mar 15 22:39:55 2019 (r345206)
+++ projects/fuse2/tests/sys/fs/fuse/fsyncdir.cc Fri Mar 15 22:47:20 2019 (r345207)
@@ -66,7 +66,7 @@ void expect_fsyncdir(uint64_t ino, uint32_t flags, int
void expect_lookup(const char *relpath, uint64_t ino)
{
- FuseTest::expect_lookup(relpath, ino, S_IFDIR | 0755, 1);
+ FuseTest::expect_lookup(relpath, ino, S_IFDIR | 0755, 0, 1);
}
};
Modified: projects/fuse2/tests/sys/fs/fuse/getattr.cc
==============================================================================
--- projects/fuse2/tests/sys/fs/fuse/getattr.cc Fri Mar 15 22:39:55 2019 (r345206)
+++ projects/fuse2/tests/sys/fs/fuse/getattr.cc Fri Mar 15 22:47:20 2019 (r345207)
@@ -88,7 +88,7 @@ TEST_F(Getattr, attr_cache_timeout)
*/
long timeout_ns = 250'000'000;
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 2);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 2);
EXPECT_CALL(*m_mock, process(
ResultOf([](auto in) {
return (in->header.opcode == FUSE_GETATTR &&
@@ -116,7 +116,7 @@ TEST_F(Getattr, enoent)
struct stat sb;
const uint64_t ino = 42;
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 1);
EXPECT_CALL(*m_mock, process(
ResultOf([](auto in) {
return (in->header.opcode == FUSE_GETATTR &&
@@ -135,7 +135,7 @@ TEST_F(Getattr, ok)
const uint64_t ino = 42;
struct stat sb;
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 1, 1);
EXPECT_CALL(*m_mock, process(
ResultOf([](auto in) {
return (in->header.opcode == FUSE_GETATTR &&
Modified: projects/fuse2/tests/sys/fs/fuse/interrupt.cc
==============================================================================
--- projects/fuse2/tests/sys/fs/fuse/interrupt.cc Fri Mar 15 22:39:55 2019 (r345206)
+++ projects/fuse2/tests/sys/fs/fuse/interrupt.cc Fri Mar 15 22:47:20 2019 (r345207)
@@ -66,7 +66,7 @@ Interrupt(): m_child(NULL) {};
void expect_lookup(const char *relpath, uint64_t ino)
{
- FuseTest::expect_lookup(relpath, ino, S_IFREG | 0644, 1);
+ FuseTest::expect_lookup(relpath, ino, S_IFREG | 0644, 0, 1);
}
/*
Modified: projects/fuse2/tests/sys/fs/fuse/link.cc
==============================================================================
--- projects/fuse2/tests/sys/fs/fuse/link.cc Fri Mar 15 22:39:55 2019 (r345206)
+++ projects/fuse2/tests/sys/fs/fuse/link.cc Fri Mar 15 22:47:20 2019 (r345207)
@@ -41,7 +41,7 @@ class Link: public FuseTest {
public:
void expect_lookup(const char *relpath, uint64_t ino)
{
- FuseTest::expect_lookup(relpath, ino, S_IFREG | 0644, 1);
+ FuseTest::expect_lookup(relpath, ino, S_IFREG | 0644, 0, 1);
}
};
Modified: projects/fuse2/tests/sys/fs/fuse/locks.cc
==============================================================================
--- projects/fuse2/tests/sys/fs/fuse/locks.cc Fri Mar 15 22:39:55 2019 (r345206)
+++ projects/fuse2/tests/sys/fs/fuse/locks.cc Fri Mar 15 22:47:20 2019 (r345207)
@@ -46,7 +46,7 @@ class Fallback: public FuseTest { (public)
void expect_lookup(const char *relpath, uint64_t ino)
{
- FuseTest::expect_lookup(relpath, ino, S_IFREG | 0644, 1);
+ FuseTest::expect_lookup(relpath, ino, S_IFREG | 0644, 0, 1);
}
};
Modified: projects/fuse2/tests/sys/fs/fuse/mkdir.cc
==============================================================================
--- projects/fuse2/tests/sys/fs/fuse/mkdir.cc Fri Mar 15 22:39:55 2019 (r345206)
+++ projects/fuse2/tests/sys/fs/fuse/mkdir.cc Fri Mar 15 22:47:20 2019 (r345207)
@@ -143,7 +143,7 @@ TEST_F(Mkdir, DISABLED_entry_cache_negative_purge)
ASSERT_EQ(0, mkdir(FULLPATH, mode)) << strerror(errno);
/* Finally, a subsequent lookup should query the daemon */
- expect_lookup(RELPATH, ino, S_IFDIR | mode, 1);
+ expect_lookup(RELPATH, ino, S_IFDIR | mode, 0, 1);
ASSERT_EQ(0, access(FULLPATH, F_OK)) << strerror(errno);
}
Modified: projects/fuse2/tests/sys/fs/fuse/open.cc
==============================================================================
--- projects/fuse2/tests/sys/fs/fuse/open.cc Fri Mar 15 22:39:55 2019 (r345206)
+++ projects/fuse2/tests/sys/fs/fuse/open.cc Fri Mar 15 22:47:20 2019 (r345207)
@@ -48,7 +48,7 @@ void test_ok(int os_flags, int fuse_flags) {
uint64_t ino = 42;
int fd;
- FuseTest::expect_lookup(RELPATH, ino, S_IFREG | 0644, 1);
+ FuseTest::expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 1);
EXPECT_CALL(*m_mock, process(
ResultOf([=](auto in) {
return (in->header.opcode == FUSE_OPEN &&
@@ -92,7 +92,7 @@ TEST_F(Open, enoent)
const char RELPATH[] = "some_file.txt";
uint64_t ino = 42;
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 1);
EXPECT_CALL(*m_mock, process(
ResultOf([=](auto in) {
return (in->header.opcode == FUSE_OPEN &&
@@ -114,7 +114,7 @@ TEST_F(Open, eperm)
const char RELPATH[] = "some_file.txt";
uint64_t ino = 42;
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 1);
EXPECT_CALL(*m_mock, process(
ResultOf([=](auto in) {
return (in->header.opcode == FUSE_OPEN &&
Modified: projects/fuse2/tests/sys/fs/fuse/opendir.cc
==============================================================================
--- projects/fuse2/tests/sys/fs/fuse/opendir.cc Fri Mar 15 22:39:55 2019 (r345206)
+++ projects/fuse2/tests/sys/fs/fuse/opendir.cc Fri Mar 15 22:47:20 2019 (r345207)
@@ -42,7 +42,7 @@ class Opendir: public FuseTest {
public:
void expect_lookup(const char *relpath, uint64_t ino)
{
- FuseTest::expect_lookup(relpath, ino, S_IFDIR | 0755, 1);
+ FuseTest::expect_lookup(relpath, ino, S_IFDIR | 0755, 0, 1);
}
};
Modified: projects/fuse2/tests/sys/fs/fuse/read.cc
==============================================================================
--- projects/fuse2/tests/sys/fs/fuse/read.cc Fri Mar 15 22:39:55 2019 (r345206)
+++ projects/fuse2/tests/sys/fs/fuse/read.cc Fri Mar 15 22:47:20 2019 (r345207)
@@ -48,9 +48,9 @@ using namespace testing;
class Read: public FuseTest {
public:
-void expect_lookup(const char *relpath, uint64_t ino)
+void expect_lookup(const char *relpath, uint64_t ino, uint64_t size)
{
- FuseTest::expect_lookup(relpath, ino, S_IFREG | 0644, 1);
+ FuseTest::expect_lookup(relpath, ino, S_IFREG | 0644, size, 1);
}
};
@@ -97,7 +97,7 @@ TEST_F(AioRead, aio_read)
char buf[bufsize];
struct aiocb iocb, *piocb;
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, bufsize);
expect_open(ino, 0, 1);
expect_getattr(ino, bufsize);
expect_read(ino, 0, bufsize, bufsize, CONTENTS);
@@ -132,7 +132,7 @@ TEST_F(AioRead, async_read_disabled)
off_t off1 = 4096;
struct aiocb iocb0, iocb1;
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, bufsize);
expect_open(ino, 0, 1);
expect_getattr(ino, bufsize);
EXPECT_CALL(*m_mock, process(
@@ -210,7 +210,7 @@ TEST_F(AsyncRead, DISABLED_async_read)
off_t off1 = 4096;
struct aiocb iocb0, iocb1;
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, bufsize);
expect_open(ino, 0, 1);
expect_getattr(ino, bufsize);
EXPECT_CALL(*m_mock, process(
@@ -279,7 +279,7 @@ TEST_F(Read, direct_io_read_nothing)
uint64_t offset = 100;
char buf[80];
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, offset + 1000);
expect_open(ino, FOPEN_DIRECT_IO, 1);
expect_getattr(ino, offset + 1000);
@@ -305,7 +305,7 @@ TEST_F(Read, direct_io_pread)
ssize_t bufsize = strlen(CONTENTS);
char buf[bufsize];
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, offset + bufsize);
expect_open(ino, FOPEN_DIRECT_IO, 1);
expect_getattr(ino, offset + bufsize);
expect_read(ino, offset, bufsize, bufsize, CONTENTS);
@@ -334,7 +334,7 @@ TEST_F(Read, direct_io_short_read)
ssize_t halfbufsize = bufsize / 2;
char buf[bufsize];
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, offset + bufsize);
expect_open(ino, FOPEN_DIRECT_IO, 1);
expect_getattr(ino, offset + bufsize);
expect_read(ino, offset, bufsize, halfbufsize, CONTENTS);
@@ -358,7 +358,7 @@ TEST_F(Read, eio)
ssize_t bufsize = strlen(CONTENTS);
char buf[bufsize];
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, bufsize);
expect_open(ino, 0, 1);
expect_getattr(ino, bufsize);
EXPECT_CALL(*m_mock, process(
@@ -376,6 +376,79 @@ TEST_F(Read, eio)
/* Deliberately leak fd. close(2) will be tested in release.cc */
}
+/*
+ * With the keep_cache option, the kernel may keep its read cache across
+ * multiple open(2)s.
+ */
+/* https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236560 */
+TEST_F(Read, DISABLED_keep_cache)
+{
+ const char FULLPATH[] = "mountpoint/some_file.txt";
+ const char RELPATH[] = "some_file.txt";
+ const char *CONTENTS = "abcdefgh";
+ uint64_t ino = 42;
+ int fd0, fd1;
+ ssize_t bufsize = strlen(CONTENTS);
+ char buf[bufsize];
+
+ FuseTest::expect_lookup(RELPATH, ino, S_IFREG | 0644, bufsize, 2);
+ expect_open(ino, FOPEN_KEEP_CACHE, 1);
+ expect_getattr(ino, bufsize);
+ expect_read(ino, 0, bufsize, bufsize, CONTENTS);
+
+ fd0 = open(FULLPATH, O_RDONLY);
+ ASSERT_LE(0, fd0) << strerror(errno);
+ ASSERT_EQ(bufsize, read(fd0, buf, bufsize)) << strerror(errno);
+
+ fd1 = open(FULLPATH, O_RDONLY);
+ ASSERT_LE(0, fd1) << strerror(errno);
+
+ /*
+ * This read should be serviced by cache, even though it's on the other
+ * file descriptor
+ */
+ ASSERT_EQ(bufsize, read(fd1, buf, bufsize)) << strerror(errno);
+
+ /* Deliberately leak fd0 and fd1. */
+}
+
+/*
+ * Without the keep_cache option, the kernel should drop its read caches on
+ * every open
+ */
+TEST_F(Read, keep_cache_disabled)
+{
+ const char FULLPATH[] = "mountpoint/some_file.txt";
+ const char RELPATH[] = "some_file.txt";
+ const char *CONTENTS = "abcdefgh";
+ uint64_t ino = 42;
+ int fd0, fd1;
+ ssize_t bufsize = strlen(CONTENTS);
+ char buf[bufsize];
+
+ FuseTest::expect_lookup(RELPATH, ino, S_IFREG | 0644, bufsize, 2);
+ expect_open(ino, FOPEN_KEEP_CACHE, 1);
+ expect_getattr(ino, bufsize);
+ expect_read(ino, 0, bufsize, bufsize, CONTENTS);
+
+ fd0 = open(FULLPATH, O_RDONLY);
+ ASSERT_LE(0, fd0) << strerror(errno);
+ ASSERT_EQ(bufsize, read(fd0, buf, bufsize)) << strerror(errno);
+
+ fd1 = open(FULLPATH, O_RDONLY);
+ ASSERT_LE(0, fd1) << strerror(errno);
+
+ /*
+ * This read should not be serviced by cache, even though it's on the
+ * original file descriptor
+ */
+ expect_read(ino, 0, bufsize, bufsize, CONTENTS);
+ ASSERT_EQ(0, lseek(fd0, 0, SEEK_SET)) << strerror(errno);
+ ASSERT_EQ(bufsize, read(fd0, buf, bufsize)) << strerror(errno);
+
+ /* Deliberately leak fd0 and fd1. */
+}
+
TEST_F(Read, mmap)
{
const char FULLPATH[] = "mountpoint/some_file.txt";
@@ -390,7 +463,7 @@ TEST_F(Read, mmap)
len = getpagesize();
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, bufsize);
expect_open(ino, 0, 1);
expect_getattr(ino, bufsize);
/* mmap may legitimately try to read more data than is available */
@@ -434,7 +507,7 @@ TEST_F(Read, o_direct)
ssize_t bufsize = strlen(CONTENTS);
char buf[bufsize];
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, bufsize);
expect_open(ino, 0, 1);
expect_getattr(ino, bufsize);
expect_read(ino, 0, bufsize, bufsize, CONTENTS);
@@ -471,7 +544,7 @@ TEST_F(Read, pread)
ssize_t bufsize = strlen(CONTENTS);
char buf[bufsize];
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, offset + bufsize);
expect_open(ino, 0, 1);
expect_getattr(ino, offset + bufsize);
expect_read(ino, offset, bufsize, bufsize, CONTENTS);
@@ -494,7 +567,7 @@ TEST_F(Read, read)
ssize_t bufsize = strlen(CONTENTS);
char buf[bufsize];
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, bufsize);
expect_open(ino, 0, 1);
expect_getattr(ino, bufsize);
expect_read(ino, 0, bufsize, bufsize, CONTENTS);
@@ -504,6 +577,7 @@ TEST_F(Read, read)
ASSERT_EQ(bufsize, read(fd, buf, bufsize)) << strerror(errno);
ASSERT_EQ(0, memcmp(buf, CONTENTS, bufsize));
+
/* Deliberately leak fd. close(2) will be tested in release.cc */
}
@@ -527,7 +601,7 @@ TEST_F(Read, default_readahead)
ASSERT_NE(NULL, contents);
memmove(contents, CONTENTS0, strlen(CONTENTS0));
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, filesize);
expect_open(ino, 0, 1);
expect_getattr(ino, filesize);
expect_read(ino, 0, default_maxreadahead, default_maxreadahead,
@@ -558,7 +632,7 @@ TEST_F(Read, sendfile)
int sp[2];
off_t sbytes;
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, bufsize);
expect_open(ino, 0, 1);
expect_getattr(ino, bufsize);
/* Like mmap, sendfile may request more data than is available */
@@ -604,7 +678,7 @@ TEST_F(Read, DISABLED_sendfile_eio)
int sp[2];
off_t sbytes;
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, bufsize);
expect_open(ino, 0, 1);
expect_getattr(ino, bufsize);
EXPECT_CALL(*m_mock, process(
@@ -646,7 +720,7 @@ TEST_P(ReadAhead, DISABLED_readahead) {
ASSERT_NE(NULL, contents);
memmove(contents, CONTENTS0, strlen(CONTENTS0));
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, filesize);
expect_open(ino, 0, 1);
expect_getattr(ino, filesize);
/* fuse(4) should only read ahead the allowed amount */
Modified: projects/fuse2/tests/sys/fs/fuse/readdir.cc
==============================================================================
--- projects/fuse2/tests/sys/fs/fuse/readdir.cc Fri Mar 15 22:39:55 2019 (r345206)
+++ projects/fuse2/tests/sys/fs/fuse/readdir.cc Fri Mar 15 22:47:20 2019 (r345207)
@@ -43,7 +43,7 @@ class Readdir: public FuseTest {
public:
void expect_lookup(const char *relpath, uint64_t ino)
{
- FuseTest::expect_lookup(relpath, ino, S_IFDIR | 0755, 1);
+ FuseTest::expect_lookup(relpath, ino, S_IFDIR | 0755, 0, 1);
}
void expect_readdir(uint64_t ino, uint64_t off, vector<struct dirent> &ents)
Modified: projects/fuse2/tests/sys/fs/fuse/readlink.cc
==============================================================================
--- projects/fuse2/tests/sys/fs/fuse/readlink.cc Fri Mar 15 22:39:55 2019 (r345206)
+++ projects/fuse2/tests/sys/fs/fuse/readlink.cc Fri Mar 15 22:47:20 2019 (r345207)
@@ -41,7 +41,7 @@ class Readlink: public FuseTest {
public:
void expect_lookup(const char *relpath, uint64_t ino)
{
- FuseTest::expect_lookup(relpath, ino, S_IFLNK | 0777, 1);
+ FuseTest::expect_lookup(relpath, ino, S_IFLNK | 0777, 0, 1);
}
};
Modified: projects/fuse2/tests/sys/fs/fuse/release.cc
==============================================================================
--- projects/fuse2/tests/sys/fs/fuse/release.cc Fri Mar 15 22:39:55 2019 (r345206)
+++ projects/fuse2/tests/sys/fs/fuse/release.cc Fri Mar 15 22:47:20 2019 (r345207)
@@ -43,7 +43,7 @@ class Release: public FuseTest {
public:
void expect_lookup(const char *relpath, uint64_t ino, int times)
{
- FuseTest::expect_lookup(relpath, ino, S_IFREG | 0644, times);
+ FuseTest::expect_lookup(relpath, ino, S_IFREG | 0644, 0, times);
}
};
Modified: projects/fuse2/tests/sys/fs/fuse/releasedir.cc
==============================================================================
--- projects/fuse2/tests/sys/fs/fuse/releasedir.cc Fri Mar 15 22:39:55 2019 (r345206)
+++ projects/fuse2/tests/sys/fs/fuse/releasedir.cc Fri Mar 15 22:47:20 2019 (r345207)
@@ -42,7 +42,7 @@ class ReleaseDir: public FuseTest {
public:
void expect_lookup(const char *relpath, uint64_t ino)
{
- FuseTest::expect_lookup(relpath, ino, S_IFDIR | 0755, 1);
+ FuseTest::expect_lookup(relpath, ino, S_IFDIR | 0755, 0, 1);
}
void expect_releasedir(uint64_t ino, ProcessMockerT r)
Modified: projects/fuse2/tests/sys/fs/fuse/rename.cc
==============================================================================
--- projects/fuse2/tests/sys/fs/fuse/rename.cc Fri Mar 15 22:39:55 2019 (r345206)
+++ projects/fuse2/tests/sys/fs/fuse/rename.cc Fri Mar 15 22:47:20 2019 (r345207)
@@ -62,7 +62,7 @@ TEST_F(Rename, einval)
const char RELSRC[] = "src";
uint64_t src_ino = 42;
- expect_lookup(RELSRC, src_ino, S_IFDIR | 0755, 2);
+ expect_lookup(RELSRC, src_ino, S_IFDIR | 0755, 0, 2);
EXPECT_LOOKUP(src_ino, RELDST).WillOnce(Invoke(ReturnErrno(ENOENT)));
ASSERT_NE(0, rename(FULLSRC, FULLDST));
@@ -103,7 +103,7 @@ TEST_F(Rename, DISABLED_entry_cache_negative)
*/
struct timespec entry_valid = {.tv_sec = 0, .tv_nsec = 0};
- expect_lookup(RELSRC, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELSRC, ino, S_IFREG | 0644, 0, 1);
/* LOOKUP returns a negative cache entry for dst */
EXPECT_LOOKUP(1, RELDST).WillOnce(ReturnNegativeCache(&entry_valid));
@@ -143,7 +143,7 @@ TEST_F(Rename, DISABLED_entry_cache_negative_purge)
*/
struct timespec entry_valid = {.tv_sec = 0, .tv_nsec = 0};
- expect_lookup(RELSRC, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELSRC, ino, S_IFREG | 0644, 0, 1);
/* LOOKUP returns a negative cache entry for dst */
EXPECT_LOOKUP(1, RELDST).WillOnce(ReturnNegativeCache(&entry_valid))
.RetiresOnSaturation();
@@ -164,7 +164,7 @@ TEST_F(Rename, DISABLED_entry_cache_negative_purge)
ASSERT_EQ(0, rename(FULLSRC, FULLDST)) << strerror(errno);
/* Finally, a subsequent lookup should query the daemon */
- expect_lookup(RELSRC, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELSRC, ino, S_IFREG | 0644, 0, 1);
ASSERT_EQ(0, access(FULLDST, F_OK)) << strerror(errno);
}
@@ -179,7 +179,7 @@ TEST_F(Rename, exdev)
tmpfd = mkstemp(tmpfile);
ASSERT_LE(0, tmpfd) << strerror(errno);
- expect_lookup(RELB, b_ino, S_IFREG | 0644, 2);
+ expect_lookup(RELB, b_ino, S_IFREG | 0644, 0, 2);
ASSERT_NE(0, rename(tmpfile, FULLB));
ASSERT_EQ(EXDEV, errno);
@@ -198,7 +198,7 @@ TEST_F(Rename, ok)
uint64_t dst_dir_ino = 1;
uint64_t ino = 42;
- expect_lookup(RELSRC, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELSRC, ino, S_IFREG | 0644, 0, 1);
EXPECT_LOOKUP(1, RELDST).WillOnce(Invoke(ReturnErrno(ENOENT)));
EXPECT_CALL(*m_mock, process(
@@ -230,8 +230,8 @@ TEST_F(Rename, overwrite)
uint64_t dst_dir_ino = 1;
uint64_t ino = 42;
- expect_lookup(RELSRC, ino, S_IFREG | 0644, 1);
- expect_lookup(RELDST, dst_ino, S_IFREG | 0644, 1);
+ expect_lookup(RELSRC, ino, S_IFREG | 0644, 0, 1);
+ expect_lookup(RELDST, dst_ino, S_IFREG | 0644, 0, 1);
EXPECT_CALL(*m_mock, process(
ResultOf([=](auto in) {
const char *src = (const char*)in->body.bytes +
Modified: projects/fuse2/tests/sys/fs/fuse/unlink.cc
==============================================================================
--- projects/fuse2/tests/sys/fs/fuse/unlink.cc Fri Mar 15 22:39:55 2019 (r345206)
+++ projects/fuse2/tests/sys/fs/fuse/unlink.cc Fri Mar 15 22:47:20 2019 (r345207)
@@ -40,7 +40,7 @@ class Unlink: public FuseTest {
public:
void expect_lookup(const char *relpath, uint64_t ino, int times)
{
- FuseTest::expect_lookup(relpath, ino, S_IFREG | 0644, times);
+ FuseTest::expect_lookup(relpath, ino, S_IFREG | 0644, 0, times);
}
void expect_unlink(uint64_t parent, const char *path, int error)
Modified: projects/fuse2/tests/sys/fs/fuse/utils.cc
==============================================================================
--- projects/fuse2/tests/sys/fs/fuse/utils.cc Fri Mar 15 22:39:55 2019 (r345206)
+++ projects/fuse2/tests/sys/fs/fuse/utils.cc Fri Mar 15 22:47:20 2019 (r345207)
@@ -103,7 +103,7 @@ void FuseTest::expect_getattr(uint64_t ino, uint64_t s
}
void FuseTest::expect_lookup(const char *relpath, uint64_t ino, mode_t mode,
- int times)
+ uint64_t size, int times)
{
EXPECT_LOOKUP(1, relpath)
.Times(times)
@@ -113,6 +113,7 @@ void FuseTest::expect_lookup(const char *relpath, uint
out->body.entry.nodeid = ino;
out->body.entry.attr.nlink = 1;
out->body.entry.attr_valid = UINT64_MAX;
+ out->body.entry.attr.size = size;
})));
}
Modified: projects/fuse2/tests/sys/fs/fuse/utils.hh
==============================================================================
--- projects/fuse2/tests/sys/fs/fuse/utils.hh Fri Mar 15 22:39:55 2019 (r345206)
+++ projects/fuse2/tests/sys/fs/fuse/utils.hh Fri Mar 15 22:47:20 2019 (r345207)
@@ -73,10 +73,10 @@ class FuseTest : public ::testing::Test {
/*
* Create an expectation that FUSE_LOOKUP will be called for the given
* path exactly times times. It will respond with inode ino, mode
- * mode, and cache validity forever.
+ * mode, filesize size, and cache validity forever.
*/
void expect_lookup(const char *relpath, uint64_t ino, mode_t mode,
- int times);
+ uint64_t size, int times);
/*
* Create an expectation that FUSE_GETATTR will be called for the given
Modified: projects/fuse2/tests/sys/fs/fuse/write.cc
==============================================================================
--- projects/fuse2/tests/sys/fs/fuse/write.cc Fri Mar 15 22:39:55 2019 (r345206)
+++ projects/fuse2/tests/sys/fs/fuse/write.cc Fri Mar 15 22:47:20 2019 (r345207)
@@ -49,9 +49,9 @@ class Write: public FuseTest {
public:
-void expect_lookup(const char *relpath, uint64_t ino)
+void expect_lookup(const char *relpath, uint64_t ino, uint64_t size)
{
- FuseTest::expect_lookup(relpath, ino, S_IFREG | 0644, 1);
+ FuseTest::expect_lookup(relpath, ino, S_IFREG | 0644, size, 1);
}
void expect_release(uint64_t ino, ProcessMockerT r)
@@ -146,7 +146,7 @@ TEST_F(AioWrite, DISABLED_aio_write)
ssize_t bufsize = strlen(CONTENTS);
struct aiocb iocb, *piocb;
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, 0);
expect_open(ino, 0, 1);
expect_getattr(ino, 0);
expect_write(ino, offset, bufsize, bufsize, 0, CONTENTS);
@@ -190,7 +190,7 @@ TEST_F(Write, append)
require_sync_resize_0();
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, initial_offset);
expect_open(ino, 0, 1);
expect_getattr(ino, initial_offset);
expect_write(ino, initial_offset, BUFSIZE, BUFSIZE, 0, CONTENTS);
@@ -213,7 +213,7 @@ TEST_F(Write, append_direct_io)
uint64_t initial_offset = 4096;
int fd;
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, initial_offset);
expect_open(ino, FOPEN_DIRECT_IO, 1);
expect_getattr(ino, initial_offset);
expect_write(ino, initial_offset, BUFSIZE, BUFSIZE, 0, CONTENTS);
@@ -238,7 +238,7 @@ TEST_F(Write, DISABLED_direct_io_evicts_cache)
ssize_t bufsize = strlen(CONTENTS0) + 1;
char readbuf[bufsize];
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, bufsize);
expect_open(ino, 0, 1);
expect_getattr(ino, bufsize);
expect_read(ino, 0, bufsize, bufsize, CONTENTS0);
@@ -281,7 +281,7 @@ TEST_F(Write, DISABLED_direct_io_short_write)
ssize_t halfbufsize = bufsize / 2;
const char *halfcontents = CONTENTS + halfbufsize;
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, 0);
expect_open(ino, FOPEN_DIRECT_IO, 1);
expect_getattr(ino, 0);
expect_write(ino, 0, bufsize, halfbufsize, 0, CONTENTS);
@@ -316,7 +316,7 @@ TEST_F(Write, DISABLED_direct_io_short_write_iov)
ssize_t totalsize = size0 + size1;
struct iovec iov[2];
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, 0);
expect_open(ino, FOPEN_DIRECT_IO, 1);
expect_getattr(ino, 0);
expect_write(ino, 0, totalsize, size0, 0, EXPECTED0);
@@ -360,7 +360,7 @@ TEST_F(Write, DISABLED_mmap)
ASSERT_NE(NULL, expected);
memmove((uint8_t*)expected + offset, CONTENTS, bufsize);
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, len);
expect_open(ino, 0, 1);
expect_getattr(ino, len);
expect_read(ino, 0, len, len, zeros);
@@ -396,7 +396,7 @@ TEST_F(Write, pwrite)
int fd;
ssize_t bufsize = strlen(CONTENTS);
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, 0);
expect_open(ino, 0, 1);
expect_getattr(ino, 0);
expect_write(ino, offset, bufsize, bufsize, 0, CONTENTS);
@@ -418,7 +418,7 @@ TEST_F(Write, write)
int fd;
ssize_t bufsize = strlen(CONTENTS);
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, 0);
expect_open(ino, 0, 1);
expect_getattr(ino, 0);
expect_write(ino, 0, bufsize, bufsize, 0, CONTENTS);
@@ -448,7 +448,7 @@ TEST_F(Write, write_large)
contents[i] = i;
}
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, 0);
expect_open(ino, 0, 1);
expect_getattr(ino, 0);
expect_write(ino, 0, halfbufsize, halfbufsize, 0, contents);
@@ -473,7 +473,7 @@ TEST_F(Write, write_nothing)
int fd;
ssize_t bufsize = 0;
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, 0);
expect_open(ino, 0, 1);
expect_getattr(ino, 0);
@@ -494,7 +494,7 @@ TEST_F(WriteBack, close)
int fd;
ssize_t bufsize = strlen(CONTENTS);
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, 0);
expect_open(ino, 0, 1);
expect_getattr(ino, 0);
expect_write(ino, 0, bufsize, bufsize, 0, CONTENTS);
@@ -529,7 +529,7 @@ TEST_F(WriteBack, writeback)
ssize_t bufsize = strlen(CONTENTS);
char readbuf[bufsize];
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, 0);
expect_open(ino, 0, 1);
expect_getattr(ino, 0);
expect_write(ino, 0, bufsize, bufsize, 0, CONTENTS);
@@ -562,7 +562,7 @@ TEST_F(WriteBack, o_direct)
ssize_t bufsize = strlen(CONTENTS);
char readbuf[bufsize];
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, 0);
expect_open(ino, 0, 1);
expect_getattr(ino, 0);
expect_write(ino, 0, bufsize, bufsize, 0, CONTENTS);
@@ -596,7 +596,7 @@ TEST_F(WriteThrough, DISABLED_writethrough)
ssize_t bufsize = strlen(CONTENTS);
char readbuf[bufsize];
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, 0);
expect_open(ino, 0, 1);
expect_getattr(ino, 0);
expect_write(ino, 0, bufsize, bufsize, 0, CONTENTS);
@@ -625,7 +625,7 @@ TEST_F(WriteThrough, DISABLED_update_file_size)
int fd;
ssize_t bufsize = strlen(CONTENTS);
- expect_lookup(RELPATH, ino);
+ expect_lookup(RELPATH, ino, 0);
expect_open(ino, 0, 1);
EXPECT_CALL(*m_mock, process(
ResultOf([=](auto in) {
Modified: projects/fuse2/tests/sys/fs/fuse/xattr.cc
==============================================================================
--- projects/fuse2/tests/sys/fs/fuse/xattr.cc Fri Mar 15 22:39:55 2019 (r345206)
+++ projects/fuse2/tests/sys/fs/fuse/xattr.cc Fri Mar 15 22:47:20 2019 (r345207)
@@ -121,7 +121,7 @@ TEST_F(Getxattr, enoattr)
int ns = EXTATTR_NAMESPACE_USER;
ssize_t r;
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 1);
expect_getxattr(ino, "user.foo", ReturnErrno(ENOATTR));
r = extattr_get_file(FULLPATH, ns, "foo", data, sizeof(data));
@@ -142,7 +142,7 @@ TEST_F(Getxattr, DISABLED_enosys)
int ns = EXTATTR_NAMESPACE_USER;
ssize_t r;
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 1);
expect_getxattr(ino, "user.foo", ReturnErrno(ENOSYS));
r = extattr_get_file(FULLPATH, ns, "foo", data, sizeof(data));
@@ -174,7 +174,7 @@ TEST_F(Getxattr, erange)
int ns = EXTATTR_NAMESPACE_USER;
ssize_t r;
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 1);
expect_getxattr(ino, "user.foo", ReturnErrno(ERANGE));
r = extattr_get_file(FULLPATH, ns, "foo", data, sizeof(data));
@@ -191,7 +191,7 @@ TEST_F(Getxattr, size_only)
uint64_t ino = 42;
int ns = EXTATTR_NAMESPACE_USER;
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 1);
expect_getxattr(ino, "user.foo",
ReturnImmediate([](auto in __unused, auto out) {
SET_OUT_HEADER_LEN(out, getxattr);
@@ -215,7 +215,7 @@ TEST_F(Getxattr, system)
int ns = EXTATTR_NAMESPACE_SYSTEM;
ssize_t r;
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 1);
expect_getxattr(ino, "system.foo",
ReturnImmediate([&](auto in __unused, auto out) {
memcpy((void*)out->body.bytes, value, value_len);
@@ -240,7 +240,7 @@ TEST_F(Getxattr, user)
int ns = EXTATTR_NAMESPACE_USER;
ssize_t r;
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 1);
expect_getxattr(ino, "user.foo",
ReturnImmediate([&](auto in __unused, auto out) {
memcpy((void*)out->body.bytes, value, value_len);
@@ -264,7 +264,7 @@ TEST_F(Listxattr, DISABLED_enosys)
uint64_t ino = 42;
int ns = EXTATTR_NAMESPACE_USER;
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 1);
expect_listxattr(ino, 0, ReturnErrno(ENOSYS));
ASSERT_EQ(-1, extattr_list_file(FULLPATH, ns, NULL, 0));
@@ -284,7 +284,7 @@ TEST_F(Listxattr, enotsup)
uint64_t ino = 42;
int ns = EXTATTR_NAMESPACE_USER;
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 1);
expect_listxattr(ino, 0, ReturnErrno(ENOTSUP));
ASSERT_EQ(-1, extattr_list_file(FULLPATH, ns, NULL, 0));
@@ -308,7 +308,7 @@ TEST_F(Listxattr, erange)
uint64_t ino = 42;
int ns = EXTATTR_NAMESPACE_USER;
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 1);
expect_listxattr(ino, 0, ReturnErrno(ERANGE));
ASSERT_EQ(-1, extattr_list_file(FULLPATH, ns, NULL, 0));
@@ -323,7 +323,7 @@ TEST_F(Listxattr, size_only_empty)
uint64_t ino = 42;
int ns = EXTATTR_NAMESPACE_USER;
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 1);
expect_listxattr(ino, 0, ReturnImmediate([](auto i __unused, auto out) {
out->body.listxattr.size = 0;
SET_OUT_HEADER_LEN(out, listxattr);
@@ -344,7 +344,7 @@ TEST_F(Listxattr, size_only_nonempty)
uint64_t ino = 42;
int ns = EXTATTR_NAMESPACE_USER;
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 1);
expect_listxattr(ino, 0, ReturnImmediate([](auto i __unused, auto out) {
out->body.listxattr.size = 45;
SET_OUT_HEADER_LEN(out, listxattr);
@@ -370,7 +370,7 @@ TEST_F(Listxattr, size_only_really_big)
uint64_t ino = 42;
int ns = EXTATTR_NAMESPACE_USER;
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 1);
expect_listxattr(ino, 0, ReturnImmediate([](auto i __unused, auto out) {
out->body.listxattr.size = 16000;
SET_OUT_HEADER_LEN(out, listxattr);
@@ -404,7 +404,7 @@ TEST_F(Listxattr, user)
char expected[9] = {3, 'f', 'o', 'o', 4, 'b', 'a', 'n', 'g'};
char attrs[28] = "user.foo\0system.x\0user.bang";
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 1);
expect_listxattr(ino, 0,
ReturnImmediate([&](auto in __unused, auto out) {
out->body.listxattr.size = sizeof(attrs);
@@ -438,7 +438,7 @@ TEST_F(Listxattr, system)
char expected[2] = {1, 'x'};
char attrs[28] = "user.foo\0system.x\0user.bang";
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 1);
expect_listxattr(ino, 0,
ReturnImmediate([&](auto in __unused, auto out) {
out->body.listxattr.size = sizeof(attrs);
@@ -466,7 +466,7 @@ TEST_F(Removexattr, enoattr)
uint64_t ino = 42;
int ns = EXTATTR_NAMESPACE_USER;
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 1);
expect_removexattr(ino, "user.foo", ENOATTR);
ASSERT_EQ(-1, extattr_delete_file(FULLPATH, ns, "foo"));
@@ -484,7 +484,7 @@ TEST_F(Removexattr, DISABLED_enosys)
uint64_t ino = 42;
int ns = EXTATTR_NAMESPACE_USER;
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 1);
expect_removexattr(ino, "user.foo", ENOSYS);
ASSERT_EQ(-1, extattr_delete_file(FULLPATH, ns, "foo"));
@@ -501,7 +501,7 @@ TEST_F(Removexattr, user)
uint64_t ino = 42;
int ns = EXTATTR_NAMESPACE_USER;
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 1);
expect_removexattr(ino, "user.foo", 0);
ASSERT_EQ(0, extattr_delete_file(FULLPATH, ns, "foo"))
@@ -514,7 +514,7 @@ TEST_F(Removexattr, system)
uint64_t ino = 42;
int ns = EXTATTR_NAMESPACE_SYSTEM;
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 1);
expect_removexattr(ino, "system.foo", 0);
ASSERT_EQ(0, extattr_delete_file(FULLPATH, ns, "foo"))
@@ -535,7 +535,7 @@ TEST_F(Setxattr, DISABLED_enosys)
int ns = EXTATTR_NAMESPACE_USER;
ssize_t r;
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 1);
expect_setxattr(ino, "user.foo", value, ReturnErrno(ENOSYS));
r = extattr_set_file(FULLPATH, ns, "foo", (void*)value, value_len);
@@ -560,7 +560,7 @@ TEST_F(Setxattr, enotsup)
int ns = EXTATTR_NAMESPACE_USER;
ssize_t r;
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 1);
expect_setxattr(ino, "user.foo", value, ReturnErrno(ENOTSUP));
r = extattr_set_file(FULLPATH, ns, "foo", (void*)value, value_len);
@@ -579,7 +579,7 @@ TEST_F(Setxattr, user)
int ns = EXTATTR_NAMESPACE_USER;
ssize_t r;
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 1);
expect_setxattr(ino, "user.foo", value, ReturnErrno(0));
r = extattr_set_file(FULLPATH, ns, "foo", (void*)value, value_len);
@@ -597,7 +597,7 @@ TEST_F(Setxattr, system)
int ns = EXTATTR_NAMESPACE_SYSTEM;
ssize_t r;
- expect_lookup(RELPATH, ino, S_IFREG | 0644, 1);
+ expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 1);
expect_setxattr(ino, "system.foo", value, ReturnErrno(0));
r = extattr_set_file(FULLPATH, ns, "foo", (void*)value, value_len);
More information about the svn-src-projects
mailing list