(self)
| 780 | |
| 781 | @unittest.skipUnless(hasattr(posix, 'makedev'), 'test needs posix.makedev()') |
| 782 | def test_makedev(self): |
| 783 | st = posix.stat(os_helper.TESTFN) |
| 784 | dev = st.st_dev |
| 785 | self.assertIsInstance(dev, int) |
| 786 | self.assertGreaterEqual(dev, 0) |
| 787 | |
| 788 | major = posix.major(dev) |
| 789 | self.assertIsInstance(major, int) |
| 790 | self.assertGreaterEqual(major, 0) |
| 791 | self.assertEqual(posix.major(dev), major) |
| 792 | self.assertRaises(TypeError, posix.major, float(dev)) |
| 793 | self.assertRaises(TypeError, posix.major) |
| 794 | for x in -2, 2**64, -2**63-1: |
| 795 | self.assertRaises((ValueError, OverflowError), posix.major, x) |
| 796 | |
| 797 | minor = posix.minor(dev) |
| 798 | self.assertIsInstance(minor, int) |
| 799 | self.assertGreaterEqual(minor, 0) |
| 800 | self.assertEqual(posix.minor(dev), minor) |
| 801 | self.assertRaises(TypeError, posix.minor, float(dev)) |
| 802 | self.assertRaises(TypeError, posix.minor) |
| 803 | for x in -2, 2**64, -2**63-1: |
| 804 | self.assertRaises((ValueError, OverflowError), posix.minor, x) |
| 805 | |
| 806 | self.assertEqual(posix.makedev(major, minor), dev) |
| 807 | self.assertRaises(TypeError, posix.makedev, float(major), minor) |
| 808 | self.assertRaises(TypeError, posix.makedev, major, float(minor)) |
| 809 | self.assertRaises(TypeError, posix.makedev, major) |
| 810 | self.assertRaises(TypeError, posix.makedev) |
| 811 | for x in -2, 2**32, 2**64, -2**63-1: |
| 812 | self.assertRaises((ValueError, OverflowError), posix.makedev, x, minor) |
| 813 | self.assertRaises((ValueError, OverflowError), posix.makedev, major, x) |
| 814 | |
| 815 | # The following tests are needed to test functions accepting or |
| 816 | # returning the special value NODEV (if it is defined). major(), minor() |
| 817 | # and makefile() are the only easily reproducible examples, but that |
| 818 | # behavior is platform specific -- on some platforms their code has |
| 819 | # a special case for NODEV, on others this is just an implementation |
| 820 | # artifact. |
| 821 | if (hasattr(posix, 'NODEV') and |
| 822 | sys.platform.startswith(('linux', 'macos', 'freebsd', 'dragonfly', |
| 823 | 'sunos'))): |
| 824 | NODEV = posix.NODEV |
| 825 | self.assertEqual(posix.major(NODEV), NODEV) |
| 826 | self.assertEqual(posix.minor(NODEV), NODEV) |
| 827 | self.assertEqual(posix.makedev(NODEV, NODEV), NODEV) |
| 828 | |
| 829 | def test_nodev(self): |
| 830 | # NODEV is not a part of Posix, but is defined on many systems. |
nothing calls this directly
no test coverage detected