diff -r 52744a5a9260 Lib/ctypes/test/test_bitfields.py --- a/Lib/ctypes/test/test_bitfields.py Fri Jun 24 09:37:26 2011 -0500 +++ b/Lib/ctypes/test/test_bitfields.py Fri Jun 24 15:29:42 2011 -0700 @@ -63,6 +63,11 @@ x.a, x.b, x.c = -1, 7, -1 self.assertEqual((x.a, x.b, x.c), (-1, 7, -1)) + # set all bits in x.b to 1 + x.a, x.b, x.c = 0, -1, 0 + self.assertEqual((x.a, x.b, x.c), (0, -1, 0)) + + def test_ulonglong(self): class X(Structure): _fields_ = [("a", c_ulonglong, 1), @@ -75,6 +80,11 @@ x.a, x.b, x.c = 7, 7, 7 self.assertEqual((x.a, x.b, x.c), (1, 7, 1)) + # set all bits in x.b to 1 + x.a, x.b, x.c = 0, 0x3fffffffffffffff, 0 + self.assertEqual((x.a, x.b, x.c), (0, 0x3fffffffffffffff, 0)) + + def test_signed(self): for c_typ in signed_int_types: class X(Structure):