diff options
author | Armin Rigo <arigo@tunes.org> | 2006-04-19 11:50:27 (GMT) |
---|---|---|
committer | Armin Rigo <arigo@tunes.org> | 2006-04-19 11:50:27 (GMT) |
commit | a9017c39ce5db85602235dfd03da30f4de8bd823 (patch) | |
tree | 670aacf6665b4558844aebede696e979727f9d96 /Lib/test | |
parent | ab012af6ed8fb9a57f4d558532f4201de6534672 (diff) | |
download | cpython-a9017c39ce5db85602235dfd03da30f4de8bd823.zip cpython-a9017c39ce5db85602235dfd03da30f4de8bd823.tar.gz cpython-a9017c39ce5db85602235dfd03da30f4de8bd823.tar.bz2 |
SF Patch #1062014: AF_UNIX sockets under Linux have a special
abstract namespace that is now fully supported.
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_socket.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py index 46468a6..6943080 100644 --- a/Lib/test/test_socket.py +++ b/Lib/test/test_socket.py @@ -825,6 +825,32 @@ class TestExceptions(unittest.TestCase): self.assert_(issubclass(socket.gaierror, socket.error)) self.assert_(issubclass(socket.timeout, socket.error)) +class TestLinuxAbstractNamespace(unittest.TestCase): + + UNIX_PATH_MAX = 108 + + def testLinuxAbstractNamespace(self): + address = "\x00python-test-hello\x00\xff" + s1 = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + s1.bind(address) + s1.listen(1) + s2 = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + s2.connect(s1.getsockname()) + s1.accept() + self.assertEqual(s1.getsockname(), address) + self.assertEqual(s2.getpeername(), address) + + def testMaxName(self): + address = "\x00" + "h" * (self.UNIX_PATH_MAX - 1) + s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + s.bind(address) + self.assertEqual(s.getsockname(), address) + + def testNameOverflow(self): + address = "\x00" + "h" * self.UNIX_PATH_MAX + s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + self.assertRaises(socket.error, s.bind, address) + def test_main(): tests = [GeneralModuleTests, BasicTCPTest, TCPTimeoutTest, TestExceptions] @@ -840,6 +866,8 @@ def test_main(): ]) if hasattr(socket, "socketpair"): tests.append(BasicSocketPairTest) + if sys.platform == 'linux2': + tests.append(TestLinuxAbstractNamespace) test_support.run_unittest(*tests) if __name__ == "__main__": |