@@ -442,6 +442,36 @@ def test_mknod(self):
442442 else :
443443 self .assertTrue (stat .S_ISFIFO (posix .stat (support .TESTFN ).st_mode ))
444444
445+ @unittest .skipUnless (hasattr (posix , 'stat' ), 'test needs posix.stat()' )
446+ @unittest .skipUnless (hasattr (posix , 'makedev' ), 'test needs posix.makedev()' )
447+ def test_makedev (self ):
448+ st = posix .stat (support .TESTFN )
449+ dev = st .st_dev
450+ self .assertIsInstance (dev , int )
451+ self .assertGreaterEqual (dev , 0 )
452+
453+ major = posix .major (dev )
454+ self .assertIsInstance (major , int )
455+ self .assertGreaterEqual (major , 0 )
456+ self .assertEqual (posix .major (dev ), major )
457+ self .assertRaises (TypeError , posix .major , float (dev ))
458+ self .assertRaises (TypeError , posix .major )
459+ self .assertRaises ((ValueError , OverflowError ), posix .major , - 1 )
460+
461+ minor = posix .minor (dev )
462+ self .assertIsInstance (minor , int )
463+ self .assertGreaterEqual (minor , 0 )
464+ self .assertEqual (posix .minor (dev ), minor )
465+ self .assertRaises (TypeError , posix .minor , float (dev ))
466+ self .assertRaises (TypeError , posix .minor )
467+ self .assertRaises ((ValueError , OverflowError ), posix .minor , - 1 )
468+
469+ self .assertEqual (posix .makedev (major , minor ), dev )
470+ self .assertRaises (TypeError , posix .makedev , float (major ), minor )
471+ self .assertRaises (TypeError , posix .makedev , major , float (minor ))
472+ self .assertRaises (TypeError , posix .makedev , major )
473+ self .assertRaises (TypeError , posix .makedev )
474+
445475 def _test_all_chown_common (self , chown_func , first_param , stat_func ):
446476 """Common code for chown, fchown and lchown tests."""
447477 def check_stat (uid , gid ):
0 commit comments