aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAlan Somers <asomers@FreeBSD.org>2024-05-09 14:40:21 +0000
committerAlan Somers <asomers@FreeBSD.org>2024-05-09 17:09:23 +0000
commitb2792a300ddb8d8334b234fe7744f5141cc96103 (patch)
tree6c1929e16b5cdb668a4de33ae04eac2a019e447a /tests
parent0d15140d6d3470db45d823e4f3a5ec05693b097d (diff)
downloadsrc-b2792a300ddb8d8334b234fe7744f5141cc96103.tar.gz
src-b2792a300ddb8d8334b234fe7744f5141cc96103.zip
fusefs: make the tests more robust to changes to maxphys
Remove assumptions in two test cases that maxphys won't be huge. Reported by: kib MFC after: 2 weeks Sponsored by: Axcient
Diffstat (limited to 'tests')
-rw-r--r--tests/sys/fs/fusefs/bmap.cc17
-rw-r--r--tests/sys/fs/fusefs/write.cc2
2 files changed, 14 insertions, 5 deletions
diff --git a/tests/sys/fs/fusefs/bmap.cc b/tests/sys/fs/fusefs/bmap.cc
index 48c9c7d038ed..30612079657d 100644
--- a/tests/sys/fs/fusefs/bmap.cc
+++ b/tests/sys/fs/fusefs/bmap.cc
@@ -77,8 +77,6 @@ class BmapEof: public Bmap, public WithParamInterface<int> {};
/*
* Test FUSE_BMAP
- * XXX The FUSE protocol does not include the runp and runb variables, so those
- * must be guessed in-kernel.
*/
TEST_F(Bmap, bmap)
{
@@ -105,8 +103,19 @@ TEST_F(Bmap, bmap)
arg.runb = -1;
ASSERT_EQ(0, ioctl(fd, FIOBMAP2, &arg)) << strerror(errno);
EXPECT_EQ(arg.bn, pbn);
- EXPECT_EQ((unsigned long)arg.runp, m_maxphys / m_maxbcachebuf - 1);
- EXPECT_EQ((unsigned long)arg.runb, m_maxphys / m_maxbcachebuf - 1);
+ /*
+ * XXX The FUSE protocol does not include the runp and runb variables,
+ * so those must be guessed in-kernel. There's no "right" answer, so
+ * just check that they're within reasonable limits.
+ */
+ EXPECT_LE(arg.runb, lbn);
+ EXPECT_LE((unsigned long)arg.runb, m_maxreadahead / m_maxbcachebuf);
+ EXPECT_LE((unsigned long)arg.runb, m_maxphys / m_maxbcachebuf);
+ EXPECT_GT(arg.runb, 0);
+ EXPECT_LE(arg.runp, filesize / m_maxbcachebuf - lbn);
+ EXPECT_LE((unsigned long)arg.runp, m_maxreadahead / m_maxbcachebuf);
+ EXPECT_LE((unsigned long)arg.runp, m_maxphys / m_maxbcachebuf);
+ EXPECT_GT(arg.runp, 0);
leak(fd);
}
diff --git a/tests/sys/fs/fusefs/write.cc b/tests/sys/fs/fusefs/write.cc
index 336ec79c8fec..1fe2e3cc522d 100644
--- a/tests/sys/fs/fusefs/write.cc
+++ b/tests/sys/fs/fusefs/write.cc
@@ -179,7 +179,7 @@ class WriteCluster: public WriteBack {
public:
virtual void SetUp() {
m_async = true;
- m_maxwrite = 1 << 25; // Anything larger than MAXPHYS will suffice
+ m_maxwrite = UINT32_MAX; // Anything larger than MAXPHYS will suffice
WriteBack::SetUp();
if (m_maxphys < 2 * DFLTPHYS)
GTEST_SKIP() << "MAXPHYS must be at least twice DFLTPHYS"