def test_modinfo_parser_with_aliases_parms(self): modinfo_sample_output = """filename: /lib/modules/4.2.8-300.fc23.\ x86_64/kernel/drivers/block/loop.ko.xz\0alias=devname:loop-control\0\ alias=char-major-10-237\0alias=block-major-7-*\0license=GPL\0depends=\0\ intree=Y\0vermagic=4.2.8-300.fc23.x86_64 SMP mod_unload \0\ signer=Fedora kernel signing key\0\ sig_key=89:CE:AF:53:80:B1:D1:50:40:56:CB:00:AA:3C:46:34:6B:EB:2E:05\0\ sig_hashalgo=sha256\0\ parm: max_loop:Maximum number of loop devices (int)\0\ parm: max_part:Maximum number of partitions per loop \ device (int)\0""" modinfo_dict = sysmodules.parse_modinfo_0_output(modinfo_sample_output) self.assertEqual( modinfo_dict["filename"], "/lib/modules/4.2.8-300.fc23.x86_64/kernel/drivers" "/block/loop.ko.xz" ) self.assertEqual(modinfo_dict["license"], "GPL") self.assertEqual(modinfo_dict["depends"], []) self.assertEqual(modinfo_dict["intree"], "Y") self.assertEqual(modinfo_dict["vermagic"], "4.2.8-300.fc23.x86_64 SMP mod_unload") self.assertEqual(modinfo_dict["signer"], "Fedora kernel signing key") self.assertEqual(modinfo_dict["sig_key"], "89:CE:AF:53:80:B1:D1:50:40:56:CB:00:AA:3C:46:34:6B:EB:2E:05") self.assertEqual(modinfo_dict["sig_hashalgo"], "sha256") self.assertEqual(modinfo_dict["aliases"], ["devname:loop-control", "char-major-10-237", "block-major-7-*"]) self.assertEqual( modinfo_dict["parms"], { "max_loop": "Maximum number of loop devices (int)", "max_part": "Maximum number of partitions per loop " "device (int)", }, ) self.assertEqual(modinfo_dict["features"], {})
def test_modinfo_parser_multiple_author(self): modinfo_sample_output = """filename: /lib/modules/4.2.8-300.\ fc23.x86_64/kernel/drivers/net/wireless/rtlwifi/rtl_pci.ko.xz\0\ description=PCI basic driver for rtlwifi\0license=GPL\0author=Larry \ Finger <*****@*****.**>\0author=Realtek WlanFAE \ <*****@*****.**>\0author=lizhaoming <chaoming_li@realsil.\ com.cn>\0depends=mac80211,rtlwifi\0intree=Y\0vermagic=4.2.8-300.fc23.\ x86_64 SMP mod_unload \0signer=Fedora kernel signing key\0sig_key=89:\ CE:AF:53:80:B1:D1:50:40:56:CB:00:AA:3C:46:34:6B:EB:2E:05\0\ sig_hashalgo=sha256\0""" modinfo_dict = sysmodules.parse_modinfo_0_output(modinfo_sample_output) self.assertEqual( modinfo_dict["authors"], [ "Larry Finger <*****@*****.**>", "Realtek WlanFAE <*****@*****.**>", "lizhaoming <*****@*****.**>", ], ) self.assertEqual( modinfo_dict["filename"], "/lib/modules/4.2.8-300.fc23.x86_64/kernel/drivers" "/net/wireless/rtlwifi/rtl_pci.ko.xz", ) self.assertEqual(modinfo_dict["license"], "GPL") self.assertEqual(modinfo_dict["depends"], ["mac80211", "rtlwifi"]) self.assertEqual(modinfo_dict["intree"], "Y") self.assertEqual(modinfo_dict["vermagic"], "4.2.8-300.fc23.x86_64 SMP mod_unload") self.assertEqual(modinfo_dict["signer"], "Fedora kernel signing key") self.assertEqual(modinfo_dict["sig_key"], "89:CE:AF:53:80:B1:D1:50:40:56:CB:00:AA:3C:46:34:6B:EB:2E:05") self.assertEqual(modinfo_dict["sig_hashalgo"], "sha256") self.assertEqual(modinfo_dict["aliases"], []) self.assertEqual(modinfo_dict["parms"], {}) self.assertEqual(modinfo_dict["features"], {})
def test_modinfo_parser(self): modinfo_sample_output = """filename: /lib/modules/4.2.8-300.fc23.\ x86_64/kernel/net/tipc/tipc.ko.xz\0version=2.0.0\0license=Dual BSD/GPL\0\ description=TIPC: Transparent Inter Process Communication\0\ srcversion=D8C4AF100F6EA6984637AD1\0depends=udp_tunnel,ip6_udp_tunnel\0\ intree=Y\0vermagic=4.2.8-300.fc23.x86_64 SMP mod_unload \0\ signer=Fedora kernel signing key\0\ sig_key=89:CE:AF:53:80:B1:D1:50:40:56:CB:00:AA:3C:46:34:6B:EB:2E:05\0\ sig_hashalgo=sha256\0""" modinfo_dict = sysmodules.parse_modinfo_0_output(modinfo_sample_output) self.assertEqual(modinfo_dict["filename"], "/lib/modules/4.2.8-300.fc23.x86_64/kernel/net/tipc/tipc.ko.xz") self.assertEqual(modinfo_dict["version"], "2.0.0") self.assertEqual(modinfo_dict["license"], "Dual BSD/GPL") self.assertEqual(modinfo_dict["description"], "TIPC: Transparent Inter Process Communication") self.assertEqual(modinfo_dict["srcversion"], "D8C4AF100F6EA6984637AD1") self.assertEqual(modinfo_dict["depends"], ["udp_tunnel", "ip6_udp_tunnel"]) self.assertEqual(modinfo_dict["intree"], "Y") self.assertEqual(modinfo_dict["vermagic"], "4.2.8-300.fc23.x86_64 SMP mod_unload") self.assertEqual(modinfo_dict["signer"], "Fedora kernel signing key") self.assertEqual(modinfo_dict["sig_key"], "89:CE:AF:53:80:B1:D1:50:40:56:CB:00:AA:3C:46:34:6B:EB:2E:05") self.assertEqual(modinfo_dict["sig_hashalgo"], "sha256") self.assertEqual(modinfo_dict["aliases"], []) self.assertEqual(modinfo_dict["parms"], {}) self.assertEqual(modinfo_dict["features"], {})
def test_modinfo_parser(self): modinfo_sample_output = """filename: /lib/modules/4.2.8-300.fc23.\ x86_64/kernel/net/tipc/tipc.ko.xz\0version=2.0.0\0license=Dual BSD/GPL\0\ description=TIPC: Transparent Inter Process Communication\0\ srcversion=D8C4AF100F6EA6984637AD1\0depends=udp_tunnel,ip6_udp_tunnel\0\ intree=Y\0vermagic=4.2.8-300.fc23.x86_64 SMP mod_unload \0\ signer=Fedora kernel signing key\0\ sig_key=89:CE:AF:53:80:B1:D1:50:40:56:CB:00:AA:3C:46:34:6B:EB:2E:05\0\ sig_hashalgo=sha256\0""" modinfo_dict = sysmodules.parse_modinfo_0_output(modinfo_sample_output) self.assertEqual( modinfo_dict['filename'], '/lib/modules/4.2.8-300.fc23.x86_64/kernel/net/tipc/tipc.ko.xz') self.assertEqual(modinfo_dict['version'], '2.0.0') self.assertEqual(modinfo_dict['license'], 'Dual BSD/GPL') self.assertEqual(modinfo_dict['description'], 'TIPC: Transparent Inter Process Communication') self.assertEqual(modinfo_dict['srcversion'], 'D8C4AF100F6EA6984637AD1') self.assertEqual(modinfo_dict['depends'], ['udp_tunnel', 'ip6_udp_tunnel']) self.assertEqual(modinfo_dict['intree'], 'Y') self.assertEqual(modinfo_dict['vermagic'], '4.2.8-300.fc23.x86_64 SMP mod_unload') self.assertEqual(modinfo_dict['signer'], 'Fedora kernel signing key') self.assertEqual( modinfo_dict['sig_key'], '89:CE:AF:53:80:B1:D1:50:40:56:CB:00:AA:3C:46:34:6B:EB:2E:05') self.assertEqual(modinfo_dict['sig_hashalgo'], 'sha256') self.assertEqual(modinfo_dict['aliases'], []) self.assertEqual(modinfo_dict['parms'], {}) self.assertEqual(modinfo_dict['features'], {})
def test_modinfo_parser_multiple_author(self): modinfo_sample_output = """filename: /lib/modules/4.2.8-300.\ fc23.x86_64/kernel/drivers/net/wireless/rtlwifi/rtl_pci.ko.xz\0\ description=PCI basic driver for rtlwifi\0license=GPL\0author=Larry \ Finger <*****@*****.**>\0author=Realtek WlanFAE \ <*****@*****.**>\0author=lizhaoming <chaoming_li@realsil.\ com.cn>\0depends=mac80211,rtlwifi\0intree=Y\0vermagic=4.2.8-300.fc23.\ x86_64 SMP mod_unload \0signer=Fedora kernel signing key\0sig_key=89:\ CE:AF:53:80:B1:D1:50:40:56:CB:00:AA:3C:46:34:6B:EB:2E:05\0\ sig_hashalgo=sha256\0""" modinfo_dict = sysmodules.parse_modinfo_0_output(modinfo_sample_output) self.assertEqual(modinfo_dict['authors'], [ 'Larry Finger <*****@*****.**>', 'Realtek WlanFAE <*****@*****.**>', 'lizhaoming <*****@*****.**>' ]) self.assertEqual( modinfo_dict['filename'], '/lib/modules/4.2.8-300.fc23.x86_64/kernel/drivers' '/net/wireless/rtlwifi/rtl_pci.ko.xz') self.assertEqual(modinfo_dict['license'], 'GPL') self.assertEqual(modinfo_dict['depends'], ['mac80211', 'rtlwifi']) self.assertEqual(modinfo_dict['intree'], 'Y') self.assertEqual(modinfo_dict['vermagic'], '4.2.8-300.fc23.x86_64 SMP mod_unload') self.assertEqual(modinfo_dict['signer'], 'Fedora kernel signing key') self.assertEqual( modinfo_dict['sig_key'], '89:CE:AF:53:80:B1:D1:50:40:56:CB:00:AA:3C:46:34:6B:EB:2E:05') self.assertEqual(modinfo_dict['sig_hashalgo'], 'sha256') self.assertEqual(modinfo_dict['aliases'], []) self.assertEqual(modinfo_dict['parms'], {}) self.assertEqual(modinfo_dict['features'], {})
def test_modinfo_parser_mlx4core(self): modinfo_dict = sysmodules.parse_modinfo_0_output(self.get_modinfo_mlx4core_output()) self.assertEqual(modinfo_dict["authors"], ["Roland Dreier"]) self.assertEqual(modinfo_dict["license"], "Dual BSD/GPL") self.assertEqual(modinfo_dict["depends"], []) self.assertEqual(modinfo_dict["intree"], "Y") self.assertEqual(len(modinfo_dict["aliases"]), 27) self.assertEqual(len(modinfo_dict["parms"]), 13) self.assertIn("num_vfs", modinfo_dict["parms"].keys()) self.assertIn("probe_vf", modinfo_dict["parms"].keys())
def test_modinfo_parser_mlx4core(self): modinfo_dict = sysmodules.parse_modinfo_0_output( self.get_modinfo_mlx4core_output()) self.assertEqual(modinfo_dict['authors'], ['Roland Dreier']) self.assertEqual(modinfo_dict['license'], 'Dual BSD/GPL') self.assertEqual(modinfo_dict['depends'], []) self.assertEqual(modinfo_dict['intree'], 'Y') self.assertEqual(len(modinfo_dict['aliases']), 27) self.assertEqual(len(modinfo_dict['parms']), 13) self.assertIn('num_vfs', modinfo_dict['parms'].keys()) self.assertIn('probe_vf', modinfo_dict['parms'].keys())
def test_modinfo_parser_mlx4core(self): modinfo_dict = sysmodules.parse_modinfo_0_output( self.get_modinfo_mlx4core_output() ) self.assertEqual(modinfo_dict['authors'], ['Roland Dreier']) self.assertEqual(modinfo_dict['license'], 'Dual BSD/GPL') self.assertEqual(modinfo_dict['depends'], []) self.assertEqual(modinfo_dict['intree'], 'Y') self.assertEqual(len(modinfo_dict['aliases']), 27) self.assertEqual(len(modinfo_dict['parms']), 13) self.assertIn('num_vfs', modinfo_dict['parms'].keys()) self.assertIn('probe_vf', modinfo_dict['parms'].keys())
def test_modinfo_parser_with_aliases_parms(self): modinfo_sample_output = """filename: /lib/modules/4.2.8-300.fc23.\ x86_64/kernel/drivers/block/loop.ko.xz\0alias=devname:loop-control\0\ alias=char-major-10-237\0alias=block-major-7-*\0license=GPL\0depends=\0\ intree=Y\0vermagic=4.2.8-300.fc23.x86_64 SMP mod_unload \0\ signer=Fedora kernel signing key\0\ sig_key=89:CE:AF:53:80:B1:D1:50:40:56:CB:00:AA:3C:46:34:6B:EB:2E:05\0\ sig_hashalgo=sha256\0\ parm: max_loop:Maximum number of loop devices (int)\0\ parm: max_part:Maximum number of partitions per loop \ device (int)\0""" modinfo_dict = sysmodules.parse_modinfo_0_output( modinfo_sample_output ) self.assertEqual( modinfo_dict['filename'], '/lib/modules/4.2.8-300.fc23.x86_64/kernel/drivers' '/block/loop.ko.xz' ) self.assertEqual(modinfo_dict['license'], 'GPL') self.assertEqual(modinfo_dict['depends'], []) self.assertEqual(modinfo_dict['intree'], 'Y') self.assertEqual( modinfo_dict['vermagic'], '4.2.8-300.fc23.x86_64 SMP mod_unload' ) self.assertEqual(modinfo_dict['signer'], 'Fedora kernel signing key') self.assertEqual( modinfo_dict['sig_key'], '89:CE:AF:53:80:B1:D1:50:40:56:CB:00:AA:3C:46:34:6B:EB:2E:05' ) self.assertEqual(modinfo_dict['sig_hashalgo'], 'sha256') self.assertEqual( modinfo_dict['aliases'], ['devname:loop-control', 'char-major-10-237', 'block-major-7-*'] ) self.assertEqual( modinfo_dict['parms'], { 'max_loop': 'Maximum number of loop devices (int)', 'max_part': 'Maximum number of partitions per loop ' 'device (int)' } ) self.assertEqual(modinfo_dict['features'], {})
def test_modinfo_parser(self): modinfo_sample_output = """filename: /lib/modules/4.2.8-300.fc23.\ x86_64/kernel/net/tipc/tipc.ko.xz\0version=2.0.0\0license=Dual BSD/GPL\0\ description=TIPC: Transparent Inter Process Communication\0\ srcversion=D8C4AF100F6EA6984637AD1\0depends=udp_tunnel,ip6_udp_tunnel\0\ intree=Y\0vermagic=4.2.8-300.fc23.x86_64 SMP mod_unload \0\ signer=Fedora kernel signing key\0\ sig_key=89:CE:AF:53:80:B1:D1:50:40:56:CB:00:AA:3C:46:34:6B:EB:2E:05\0\ sig_hashalgo=sha256\0""" modinfo_dict = sysmodules.parse_modinfo_0_output( modinfo_sample_output ) self.assertEqual( modinfo_dict['filename'], '/lib/modules/4.2.8-300.fc23.x86_64/kernel/net/tipc/tipc.ko.xz' ) self.assertEqual(modinfo_dict['version'], '2.0.0') self.assertEqual(modinfo_dict['license'], 'Dual BSD/GPL') self.assertEqual( modinfo_dict['description'], 'TIPC: Transparent Inter Process Communication' ) self.assertEqual( modinfo_dict['srcversion'], 'D8C4AF100F6EA6984637AD1' ) self.assertEqual( modinfo_dict['depends'], ['udp_tunnel', 'ip6_udp_tunnel'] ) self.assertEqual(modinfo_dict['intree'], 'Y') self.assertEqual( modinfo_dict['vermagic'], '4.2.8-300.fc23.x86_64 SMP mod_unload' ) self.assertEqual(modinfo_dict['signer'], 'Fedora kernel signing key') self.assertEqual( modinfo_dict['sig_key'], '89:CE:AF:53:80:B1:D1:50:40:56:CB:00:AA:3C:46:34:6B:EB:2E:05' ) self.assertEqual(modinfo_dict['sig_hashalgo'], 'sha256') self.assertEqual(modinfo_dict['aliases'], []) self.assertEqual(modinfo_dict['parms'], {}) self.assertEqual(modinfo_dict['features'], {})
def test_modinfo_parser_multiple_author(self): modinfo_sample_output = """filename: /lib/modules/4.2.8-300.\ fc23.x86_64/kernel/drivers/net/wireless/rtlwifi/rtl_pci.ko.xz\0\ description=PCI basic driver for rtlwifi\0license=GPL\0author=Larry \ Finger <*****@*****.**>\0author=Realtek WlanFAE \ <*****@*****.**>\0author=lizhaoming <chaoming_li@realsil.\ com.cn>\0depends=mac80211,rtlwifi\0intree=Y\0vermagic=4.2.8-300.fc23.\ x86_64 SMP mod_unload \0signer=Fedora kernel signing key\0sig_key=89:\ CE:AF:53:80:B1:D1:50:40:56:CB:00:AA:3C:46:34:6B:EB:2E:05\0\ sig_hashalgo=sha256\0""" modinfo_dict = sysmodules.parse_modinfo_0_output( modinfo_sample_output ) self.assertEqual( modinfo_dict['authors'], [ 'Larry Finger <*****@*****.**>', 'Realtek WlanFAE <*****@*****.**>', 'lizhaoming <*****@*****.**>' ] ) self.assertEqual( modinfo_dict['filename'], '/lib/modules/4.2.8-300.fc23.x86_64/kernel/drivers' '/net/wireless/rtlwifi/rtl_pci.ko.xz' ) self.assertEqual(modinfo_dict['license'], 'GPL') self.assertEqual(modinfo_dict['depends'], ['mac80211', 'rtlwifi']) self.assertEqual(modinfo_dict['intree'], 'Y') self.assertEqual( modinfo_dict['vermagic'], '4.2.8-300.fc23.x86_64 SMP mod_unload' ) self.assertEqual(modinfo_dict['signer'], 'Fedora kernel signing key') self.assertEqual( modinfo_dict['sig_key'], '89:CE:AF:53:80:B1:D1:50:40:56:CB:00:AA:3C:46:34:6B:EB:2E:05' ) self.assertEqual(modinfo_dict['sig_hashalgo'], 'sha256') self.assertEqual(modinfo_dict['aliases'], []) self.assertEqual(modinfo_dict['parms'], {}) self.assertEqual(modinfo_dict['features'], {})
def test_modinfo_parser_with_aliases_parms(self): modinfo_sample_output = """filename: /lib/modules/4.2.8-300.fc23.\ x86_64/kernel/drivers/block/loop.ko.xz\0alias=devname:loop-control\0\ alias=char-major-10-237\0alias=block-major-7-*\0license=GPL\0depends=\0\ intree=Y\0vermagic=4.2.8-300.fc23.x86_64 SMP mod_unload \0\ signer=Fedora kernel signing key\0\ sig_key=89:CE:AF:53:80:B1:D1:50:40:56:CB:00:AA:3C:46:34:6B:EB:2E:05\0\ sig_hashalgo=sha256\0\ parm: max_loop:Maximum number of loop devices (int)\0\ parm: max_part:Maximum number of partitions per loop \ device (int)\0""" modinfo_dict = sysmodules.parse_modinfo_0_output(modinfo_sample_output) self.assertEqual( modinfo_dict['filename'], '/lib/modules/4.2.8-300.fc23.x86_64/kernel/drivers' '/block/loop.ko.xz') self.assertEqual(modinfo_dict['license'], 'GPL') self.assertEqual(modinfo_dict['depends'], []) self.assertEqual(modinfo_dict['intree'], 'Y') self.assertEqual(modinfo_dict['vermagic'], '4.2.8-300.fc23.x86_64 SMP mod_unload') self.assertEqual(modinfo_dict['signer'], 'Fedora kernel signing key') self.assertEqual( modinfo_dict['sig_key'], '89:CE:AF:53:80:B1:D1:50:40:56:CB:00:AA:3C:46:34:6B:EB:2E:05') self.assertEqual(modinfo_dict['sig_hashalgo'], 'sha256') self.assertEqual( modinfo_dict['aliases'], ['devname:loop-control', 'char-major-10-237', 'block-major-7-*']) self.assertEqual( modinfo_dict['parms'], { 'max_loop': 'Maximum number of loop devices (int)', 'max_part': 'Maximum number of partitions per loop ' 'device (int)' }) self.assertEqual(modinfo_dict['features'], {})