]> granicus.if.org Git - python/commitdiff
Maybe this fixes test_socket on 64-bit Linux.
authorGuido van Rossum <guido@python.org>
Sat, 14 Sep 2002 00:58:46 +0000 (00:58 +0000)
committerGuido van Rossum <guido@python.org>
Sat, 14 Sep 2002 00:58:46 +0000 (00:58 +0000)
Lib/test/test_socket.py

index 016dd3c55ef736b3d0fed8349b58b06431144a88..3dea4e0c09b8e3d009afb1866d042d2990203ec3 100644 (file)
@@ -248,15 +248,19 @@ class GeneralModuleTests(unittest.TestCase):
         except socket.error:
             pass
 
-    def testNtoH(self):
-        for func in socket.htonl, socket.ntohl:
-            for i in (0, 1, ~0xffff, 2L):
-                self.assertEqual(i, func(func(i)))
-
-            biglong = 2**32L - 1
-            swapped = func(biglong)
-            self.assert_(swapped == biglong or swapped == -1)
-            self.assertRaises(OverflowError, func, 2L**34)
+    def testNtoHL(self):
+        # This just checks that htons etc. are their own inverse,
+        # when looking at the lower 16 or 32 bits.
+        sizes = {socket.htonl: 32, socket.ntohl: 32,
+                 socket.htons: 16, socket.ntohs: 16}
+        for func, size in sizes.items():
+            mask = (1L<<size) - 1
+            for i in (0, 1, 0xffff, ~0xffff, 2, 0x01234567, 0x76543210):
+                self.assertEqual(i & mask, func(func(i&mask)) & mask)
+
+            swapped = func(mask)
+            self.assertEqual(swapped & mask, mask)
+            self.assertRaises(OverflowError, func, 1L<<34)
 
     def testGetServByName(self):
         # Testing getservbyname()