(self)
| 738 | |
| 739 | @unittest.skipUnless(hasattr(posix, 'makedev'), 'test needs posix.makedev()') |
| 740 | def test_makedev(self): |
| 741 | st = posix.stat(os_helper.TESTFN) |
| 742 | dev = st.st_dev |
| 743 | self.assertIsInstance(dev, int) |
| 744 | self.assertGreaterEqual(dev, 0) |
| 745 | |
| 746 | major = posix.major(dev) |
| 747 | self.assertIsInstance(major, int) |
| 748 | self.assertGreaterEqual(major, 0) |
| 749 | self.assertEqual(posix.major(dev), major) |
| 750 | self.assertRaises(TypeError, posix.major, float(dev)) |
| 751 | self.assertRaises(TypeError, posix.major) |
| 752 | for x in -2, 2**64, -2**63-1: |
| 753 | self.assertRaises((ValueError, OverflowError), posix.major, x) |
| 754 | |
| 755 | minor = posix.minor(dev) |
| 756 | self.assertIsInstance(minor, int) |
| 757 | self.assertGreaterEqual(minor, 0) |
| 758 | self.assertEqual(posix.minor(dev), minor) |
| 759 | self.assertRaises(TypeError, posix.minor, float(dev)) |
| 760 | self.assertRaises(TypeError, posix.minor) |
| 761 | for x in -2, 2**64, -2**63-1: |
| 762 | self.assertRaises((ValueError, OverflowError), posix.minor, x) |
| 763 | |
| 764 | self.assertEqual(posix.makedev(major, minor), dev) |
| 765 | self.assertRaises(TypeError, posix.makedev, float(major), minor) |
| 766 | self.assertRaises(TypeError, posix.makedev, major, float(minor)) |
| 767 | self.assertRaises(TypeError, posix.makedev, major) |
| 768 | self.assertRaises(TypeError, posix.makedev) |
| 769 | for x in -2, 2**32, 2**64, -2**63-1: |
| 770 | self.assertRaises((ValueError, OverflowError), posix.makedev, x, minor) |
| 771 | self.assertRaises((ValueError, OverflowError), posix.makedev, major, x) |
| 772 | |
| 773 | if sys.platform == 'linux' and not support.linked_to_musl(): |
| 774 | NODEV = -1 |
| 775 | self.assertEqual(posix.major(NODEV), NODEV) |
| 776 | self.assertEqual(posix.minor(NODEV), NODEV) |
| 777 | self.assertEqual(posix.makedev(NODEV, NODEV), NODEV) |
| 778 | |
| 779 | def _test_all_chown_common(self, chown_func, first_param, stat_func): |
| 780 | """Common code for chown, fchown and lchown tests.""" |
nothing calls this directly
no test coverage detected