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
This commit is contained in:
@@ -77,8 +77,6 @@ class BmapEof: public Bmap, public WithParamInterface<int> {};
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Test FUSE_BMAP
|
* 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)
|
TEST_F(Bmap, bmap)
|
||||||
{
|
{
|
||||||
@@ -105,8 +103,19 @@ TEST_F(Bmap, bmap)
|
|||||||
arg.runb = -1;
|
arg.runb = -1;
|
||||||
ASSERT_EQ(0, ioctl(fd, FIOBMAP2, &arg)) << strerror(errno);
|
ASSERT_EQ(0, ioctl(fd, FIOBMAP2, &arg)) << strerror(errno);
|
||||||
EXPECT_EQ(arg.bn, pbn);
|
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);
|
leak(fd);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -179,7 +179,7 @@ class WriteCluster: public WriteBack {
|
|||||||
public:
|
public:
|
||||||
virtual void SetUp() {
|
virtual void SetUp() {
|
||||||
m_async = true;
|
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();
|
WriteBack::SetUp();
|
||||||
if (m_maxphys < 2 * DFLTPHYS)
|
if (m_maxphys < 2 * DFLTPHYS)
|
||||||
GTEST_SKIP() << "MAXPHYS must be at least twice DFLTPHYS"
|
GTEST_SKIP() << "MAXPHYS must be at least twice DFLTPHYS"
|
||||||
|
|||||||
Reference in New Issue
Block a user