1c1839039SAlexander V. Chernikovimport mmap 2c1839039SAlexander V. Chernikovimport pytest 3c1839039SAlexander V. Chernikov 4c1839039SAlexander V. Chernikovfrom atf_python.ktest import BaseKernelTest 5c1839039SAlexander V. Chernikovfrom atf_python.sys.netlink.attrs import NlAttrU32 6c1839039SAlexander V. Chernikov 7c1839039SAlexander V. ChernikovM_NOWAIT = 1 8c1839039SAlexander V. ChernikovM_WAITOK = 2 9c1839039SAlexander V. Chernikov 10*17083b94SGleb SmirnoffNLMSG_SMALL = 128 11*17083b94SGleb SmirnoffNLMSG_LARGE = 2048 12c1839039SAlexander V. Chernikov 13c1839039SAlexander V. Chernikovclass TestNetlinkMessageWriter(BaseKernelTest): 14c1839039SAlexander V. Chernikov KTEST_MODULE_NAME = "ktest_netlink_message_writer" 15c1839039SAlexander V. Chernikov 16c1839039SAlexander V. Chernikov @pytest.mark.parametrize( 17c1839039SAlexander V. Chernikov "malloc_flags", 18c1839039SAlexander V. Chernikov [ 19c1839039SAlexander V. Chernikov pytest.param(M_NOWAIT, id="NOWAIT"), 20c1839039SAlexander V. Chernikov pytest.param(M_WAITOK, id="WAITOK"), 21c1839039SAlexander V. Chernikov ], 22c1839039SAlexander V. Chernikov ) 23c1839039SAlexander V. Chernikov @pytest.mark.parametrize( 24c1839039SAlexander V. Chernikov "sz", 25c1839039SAlexander V. Chernikov [ 26*17083b94SGleb Smirnoff pytest.param([NLMSG_SMALL, NLMSG_SMALL], id="NLMSG_SMALL"), 27*17083b94SGleb Smirnoff pytest.param([NLMSG_LARGE, NLMSG_LARGE], id="NLMSG_LARGE"), 28*17083b94SGleb Smirnoff pytest.param([NLMSG_LARGE + 256, NLMSG_LARGE + 256], id="NLMSG_LARGE+256"), 29c1839039SAlexander V. Chernikov ], 30c1839039SAlexander V. Chernikov ) 31*17083b94SGleb Smirnoff def test_nlbuf_writer_allocation(self, sz, malloc_flags): 32c1839039SAlexander V. Chernikov """override to parametrize""" 33c1839039SAlexander V. Chernikov 34c1839039SAlexander V. Chernikov test_meta = [ 35c1839039SAlexander V. Chernikov NlAttrU32(1, sz[0]), # size 36c1839039SAlexander V. Chernikov NlAttrU32(2, sz[1]), # expected_avail 37*17083b94SGleb Smirnoff NlAttrU32(3, malloc_flags), 38c1839039SAlexander V. Chernikov ] 39c1839039SAlexander V. Chernikov self.runtest(test_meta) 40