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