From owner-svn-src-projects@freebsd.org  Tue Jun 25 21:21:36 2019
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 010AF15D7E32
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Tue, 25 Jun 2019 21:21:36 +0000 (UTC)
 (envelope-from asomers@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 server-signature RSA-PSS (4096 bits)
 client-signature RSA-PSS (4096 bits) client-digest SHA256)
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 9CE9A77757;
 Tue, 25 Jun 2019 21:21:35 +0000 (UTC)
 (envelope-from asomers@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7959E1E11F;
 Tue, 25 Jun 2019 21:21:35 +0000 (UTC)
 (envelope-from asomers@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x5PLLZek044683;
 Tue, 25 Jun 2019 21:21:35 GMT (envelope-from asomers@FreeBSD.org)
Received: (from asomers@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id x5PLLYN5044678;
 Tue, 25 Jun 2019 21:21:34 GMT (envelope-from asomers@FreeBSD.org)
Message-Id: <201906252121.x5PLLYN5044678@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: asomers set sender to
 asomers@FreeBSD.org using -f
From: Alan Somers <asomers@FreeBSD.org>
Date: Tue, 25 Jun 2019 21:21:34 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r349394 - projects/fuse2/tests/sys/fs/fusefs
X-SVN-Group: projects
X-SVN-Commit-Author: asomers
X-SVN-Commit-Paths: projects/fuse2/tests/sys/fs/fusefs
X-SVN-Commit-Revision: 349394
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Rspamd-Queue-Id: 9CE9A77757
X-Spamd-Bar: --
Authentication-Results: mx1.freebsd.org
X-Spamd-Result: default: False [-2.98 / 15.00];
 local_wl_from(0.00)[FreeBSD.org];
 NEURAL_HAM_MEDIUM(-1.00)[-0.999,0];
 NEURAL_HAM_LONG(-1.00)[-1.000,0];
 NEURAL_HAM_SHORT(-0.98)[-0.980,0];
 ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 25 Jun 2019 21:21:36 -0000

Author: asomers
Date: Tue Jun 25 21:21:34 2019
New Revision: 349394
URL: https://svnweb.freebsd.org/changeset/base/349394

Log:
  fusefs: fix the tests for non-default values of MAXPHYS
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  projects/fuse2/tests/sys/fs/fusefs/bmap.cc
  projects/fuse2/tests/sys/fs/fusefs/read.cc
  projects/fuse2/tests/sys/fs/fusefs/utils.cc
  projects/fuse2/tests/sys/fs/fusefs/utils.hh
  projects/fuse2/tests/sys/fs/fusefs/write.cc

Modified: projects/fuse2/tests/sys/fs/fusefs/bmap.cc
==============================================================================
--- projects/fuse2/tests/sys/fs/fusefs/bmap.cc	Tue Jun 25 20:25:16 2019	(r349393)
+++ projects/fuse2/tests/sys/fs/fusefs/bmap.cc	Tue Jun 25 21:21:34 2019	(r349394)
@@ -99,8 +99,8 @@ TEST_F(Bmap, bmap)
 	arg.runb = -1;
 	ASSERT_EQ(0, ioctl(fd, FIOBMAP2, &arg)) << strerror(errno);
 	EXPECT_EQ(arg.bn, pbn);
-	EXPECT_EQ(arg.runp, MAXPHYS / m_maxbcachebuf - 1);
-	EXPECT_EQ(arg.runb, MAXPHYS / m_maxbcachebuf - 1);
+	EXPECT_EQ(arg.runp, m_maxphys / m_maxbcachebuf - 1);
+	EXPECT_EQ(arg.runb, m_maxphys / m_maxbcachebuf - 1);
 }
 
 /* 
@@ -134,7 +134,7 @@ TEST_F(Bmap, default_)
 	arg.runb = -1;
 	ASSERT_EQ(0, ioctl(fd, FIOBMAP2, &arg)) << strerror(errno);
 	EXPECT_EQ(arg.bn, 0);
-	EXPECT_EQ(arg.runp, MAXPHYS / m_maxbcachebuf - 1);
+	EXPECT_EQ(arg.runp, m_maxphys / m_maxbcachebuf - 1);
 	EXPECT_EQ(arg.runb, 0);
 
 	/* In the middle */
@@ -144,8 +144,8 @@ TEST_F(Bmap, default_)
 	arg.runb = -1;
 	ASSERT_EQ(0, ioctl(fd, FIOBMAP2, &arg)) << strerror(errno);
 	EXPECT_EQ(arg.bn, lbn * m_maxbcachebuf / DEV_BSIZE);
-	EXPECT_EQ(arg.runp, MAXPHYS / m_maxbcachebuf - 1);
-	EXPECT_EQ(arg.runb, MAXPHYS / m_maxbcachebuf - 1);
+	EXPECT_EQ(arg.runp, m_maxphys / m_maxbcachebuf - 1);
+	EXPECT_EQ(arg.runb, m_maxphys / m_maxbcachebuf - 1);
 
 	/* Last block */
 	lbn = filesize / m_maxbcachebuf - 1;
@@ -155,5 +155,5 @@ TEST_F(Bmap, default_)
 	ASSERT_EQ(0, ioctl(fd, FIOBMAP2, &arg)) << strerror(errno);
 	EXPECT_EQ(arg.bn, lbn * m_maxbcachebuf / DEV_BSIZE);
 	EXPECT_EQ(arg.runp, 0);
-	EXPECT_EQ(arg.runb, MAXPHYS / m_maxbcachebuf - 1);
+	EXPECT_EQ(arg.runb, m_maxphys / m_maxbcachebuf - 1);
 }

Modified: projects/fuse2/tests/sys/fs/fusefs/read.cc
==============================================================================
--- projects/fuse2/tests/sys/fs/fusefs/read.cc	Tue Jun 25 20:25:16 2019	(r349393)
+++ projects/fuse2/tests/sys/fs/fusefs/read.cc	Tue Jun 25 21:21:34 2019	(r349394)
@@ -110,10 +110,16 @@ virtual void SetUp() {
 };
 
 class ReadAhead: public ReadCacheable,
-		 public WithParamInterface<tuple<bool, uint32_t>>
+		 public WithParamInterface<tuple<bool, int>>
 {
 	virtual void SetUp() {
-		m_maxreadahead = get<1>(GetParam());
+		int val;
+		const char *node = "vfs.maxbcachebuf";
+		size_t size = sizeof(val);
+		ASSERT_EQ(0, sysctlbyname(node, &val, &size, NULL, 0))
+			<< strerror(errno);
+
+		m_maxreadahead = val * get<1>(GetParam());
 		m_noclusterr = get<0>(GetParam());
 		ReadCacheable::SetUp();
 	}
@@ -892,8 +898,8 @@ TEST_P(ReadAhead, readahead) {
 	expect_lookup(RELPATH, ino, filesize);
 	expect_open(ino, 0, 1);
 	maxcontig = m_noclusterr ? m_maxbcachebuf :
-				   m_maxbcachebuf + (int)get<1>(GetParam());
-	clustersize = MIN(maxcontig, MAXPHYS);
+		m_maxbcachebuf + m_maxreadahead;
+	clustersize = MIN(maxcontig, m_maxphys);
 	for (offs = 0; offs < bufsize; offs += clustersize) {
 		len = std::min((size_t)clustersize, (size_t)(filesize - offs));
 		expect_read(ino, offs, len, len, contents + offs);
@@ -912,10 +918,10 @@ TEST_P(ReadAhead, readahead) {
 }
 
 INSTANTIATE_TEST_CASE_P(RA, ReadAhead,
-	Values(tuple<bool, int>(false, 0u),
-	       tuple<bool, int>(false, 0x10000),
-	       tuple<bool, int>(false, 0x20000),
-	       tuple<bool, int>(false, 0x30000),
-	       tuple<bool, int>(true, 0u),
-	       tuple<bool, int>(true, 0x10000),
-	       tuple<bool, int>(true, 0x20000)));
+	Values(tuple<bool, int>(false, 0),
+	       tuple<bool, int>(false, 1),
+	       tuple<bool, int>(false, 2),
+	       tuple<bool, int>(false, 3),
+	       tuple<bool, int>(true, 0),
+	       tuple<bool, int>(true, 1),
+	       tuple<bool, int>(true, 2)));

Modified: projects/fuse2/tests/sys/fs/fusefs/utils.cc
==============================================================================
--- projects/fuse2/tests/sys/fs/fusefs/utils.cc	Tue Jun 25 20:25:16 2019	(r349393)
+++ projects/fuse2/tests/sys/fs/fusefs/utils.cc	Tue Jun 25 21:21:34 2019	(r349394)
@@ -93,7 +93,8 @@ class FuseEnv: public Environment {
 };
 
 void FuseTest::SetUp() {
-	const char *node = "vfs.maxbcachebuf";
+	const char *maxbcachebuf_node = "vfs.maxbcachebuf";
+	const char *maxphys_node = "kern.maxphys";
 	int val = 0;
 	size_t size = sizeof(val);
 
@@ -105,9 +106,12 @@ void FuseTest::SetUp() {
 	if (IsSkipped())
 		return;
 
-	ASSERT_EQ(0, sysctlbyname(node, &val, &size, NULL, 0))
+	ASSERT_EQ(0, sysctlbyname(maxbcachebuf_node, &val, &size, NULL, 0))
 		<< strerror(errno);
 	m_maxbcachebuf = val;
+	ASSERT_EQ(0, sysctlbyname(maxphys_node, &val, &size, NULL, 0))
+		<< strerror(errno);
+	m_maxphys = val;
 
 	try {
 		m_mock = new MockFS(m_maxreadahead, m_allow_other,

Modified: projects/fuse2/tests/sys/fs/fusefs/utils.hh
==============================================================================
--- projects/fuse2/tests/sys/fs/fusefs/utils.hh	Tue Jun 25 20:25:16 2019	(r349393)
+++ projects/fuse2/tests/sys/fs/fusefs/utils.hh	Tue Jun 25 21:21:34 2019	(r349394)
@@ -60,6 +60,7 @@ class FuseTest : public ::testing::Test {
 
 	public:
 	int m_maxbcachebuf;
+	int m_maxphys;
 
 	FuseTest():
 		m_maxreadahead(0),

Modified: projects/fuse2/tests/sys/fs/fusefs/write.cc
==============================================================================
--- projects/fuse2/tests/sys/fs/fusefs/write.cc	Tue Jun 25 20:25:16 2019	(r349393)
+++ projects/fuse2/tests/sys/fs/fusefs/write.cc	Tue Jun 25 21:21:34 2019	(r349394)
@@ -233,13 +233,13 @@ virtual void SetUp() {
 class WriteCluster: public WriteBack {
 public:
 virtual void SetUp() {
-	if (MAXPHYS < 2 * DFLTPHYS)
+	if (m_maxphys < 2 * DFLTPHYS)
 		GTEST_SKIP() << "MAXPHYS must be at least twice DFLTPHYS"
 			<< " for this test";
 	m_async = true;
-	m_maxwrite = MAXPHYS;
+	m_maxwrite = m_maxphys;
 	WriteBack::SetUp();
-	if (MAXPHYS < 2 * m_maxbcachebuf)
+	if (m_maxphys < 2 * m_maxbcachebuf)
 		GTEST_SKIP() << "MAXPHYS must be at least twice maxbcachebuf"
 			<< " for this test";
 }
@@ -678,7 +678,7 @@ TEST_F(Write, write_large)
 
 	expect_lookup(RELPATH, ino, 0);
 	expect_open(ino, 0, 1);
-	expect_write(ino, 0, halfbufsize, halfbufsize, contents);
+	maybe_expect_write(ino, 0, halfbufsize, contents);
 	maybe_expect_write(ino, halfbufsize, halfbufsize,
 		&contents[halfbufsize / sizeof(int)]);