Commit 5cfb95f3 authored by Lorenzo Stoakes (Oracle)'s avatar Lorenzo Stoakes (Oracle) Committed by Andrew Morton
Browse files

tools/testing/vma: add test for vma_flags_test(), vma_desc_test()

Now we have helpers which test singular VMA flags - vma_flags_test() and
vma_desc_test() - add a test to explicitly assert that these behave as
expected.

[ljs@kernel.org: test_vma_flags_test(): use struct initializer, per David]
  Link: https://lkml.kernel.org/r/f6f396d2-1ba2-426f-b756-d8cc5985cc7c@lucifer.local
Link: https://lkml.kernel.org/r/376a39eb9e134d2c8ab10e32720dd292970b080a.1772704455.git.ljs@kernel.org


Signed-off-by: default avatarLorenzo Stoakes (Oracle) <ljs@kernel.org>
Acked-by: default avatarDavid Hildenbrand (Arm) <david@kernel.org>
Reviewed-by: default avatarPedro Falcato <pfalcato@suse.de>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Babu Moger <babu.moger@amd.com>
Cc: Baolin Wang <baolin.wang@linux.alibaba.com>
Cc: Chao Yu <chao@kernel.org>
Cc: Chatre, Reinette <reinette.chatre@intel.com>
Cc: Chunhai Guo <guochunhai@vivo.com>
Cc: Damien Le Maol <dlemoal@kernel.org>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Dave Jiang <dave.jiang@intel.com>
Cc: Dave Martin <dave.martin@arm.com>
Cc: Gao Xiang <xiang@kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Hongbo Li <lihongbo22@huawei.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: James Morse <james.morse@arm.com>
Cc: Jan Kara <jack@suse.cz>
Cc: Jann Horn <jannh@google.com>
Cc: Jason Gunthorpe <jgg@ziepe.ca>
Cc: Jeffle Xu <jefflexu@linux.alibaba.com>
Cc: Johannes Thumshirn <jth@kernel.org>
Cc: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
Cc: Liam Howlett <liam.howlett@oracle.com>
Cc: "Luck, Tony" <tony.luck@intel.com>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Muchun Song <muchun.song@linux.dev>
Cc: Naohiro Aota <naohiro.aota@wdc.com>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Sandeep Dhavale <dhavale@google.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Vishal Verma <vishal.l.verma@intel.com>
Cc: Vlastimil Babka <vbabka@kernel.org>
Cc: Yue Hu <zbestahu@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent 0c2aa663
Loading
Loading
Loading
Loading
+36 −0
Original line number Diff line number Diff line
@@ -159,6 +159,41 @@ static bool test_vma_flags_word(void)
	return true;
}

/* Ensure that vma_flags_test() and friends works correctly. */
static bool test_vma_flags_test(void)
{
	const vma_flags_t flags = mk_vma_flags(VMA_READ_BIT, VMA_WRITE_BIT,
					       VMA_EXEC_BIT, 64, 65);
	struct vm_area_desc desc = {
		.vma_flags = flags,
	};

#define do_test(_flag)					\
	ASSERT_TRUE(vma_flags_test(&flags, _flag));	\
	ASSERT_TRUE(vma_desc_test(&desc, _flag))

#define do_test_false(_flag)				\
	ASSERT_FALSE(vma_flags_test(&flags, _flag));	\
	ASSERT_FALSE(vma_desc_test(&desc, _flag))

	do_test(VMA_READ_BIT);
	do_test(VMA_WRITE_BIT);
	do_test(VMA_EXEC_BIT);
#if NUM_VMA_FLAG_BITS > 64
	do_test(64);
	do_test(65);
#endif
	do_test_false(VMA_MAYWRITE_BIT);
#if NUM_VMA_FLAG_BITS > 64
	do_test_false(66);
#endif

#undef do_test
#undef do_test_false

	return true;
}

/* Ensure that vma_flags_test_any() and friends works correctly. */
static bool test_vma_flags_test_any(void)
{
@@ -334,6 +369,7 @@ static void run_vma_tests(int *num_tests, int *num_fail)
	TEST(vma_flags_unchanged);
	TEST(vma_flags_cleared);
	TEST(vma_flags_word);
	TEST(vma_flags_test);
	TEST(vma_flags_test_any);
	TEST(vma_flags_clear);
}